这可能是一个愚蠢的问题,但我正在开发一个组件,并且我有一个具有如下属性的类
public class Grid()
{
..
public IDecorator Decorator { get; set;}
}
我想要的是让用户指定他们自己的自定义类,以下列方式实现 IDecorator
...BuildGrid(
grid=>{
..
grid.Decorator = [CustomNameSpace].[DecoratorClass]
//as in
grid.Decorator = Com.MyCompany.DivDecorator
..
});
Com.MyCompany.DivDecorator 实现 IDecorator 接口。那么我应该如何在没有最终用户指定“new”关键字的情况下做到这一点,如
grid.Decorator = new Com.MyCompany.DivDecorator();
我知道我在这里遗漏了一些关键的 c# 概念。
谢谢
[编辑]
我试图做一些类似于位于此处的 Java DisplayTag 库
http://www.displaytag.org/1.2/tut_decorators.html
他们这样做的方式是
...decorator="org.displaytag.sample.Wrapper"
所以我想而不是
public IDecorator Decorator { get; set;}
我应该做
public String Decorator (get; set;}
然后在内部使用 TypeOf() 来解决它....只是想知道是否有任何其他方法可以在 C# 中优雅地做到这一点。
谢谢