首页 新闻 会员 周边 捐助

泛弄接口如何动态创建。

0
悬赏园豆:5 [已关闭问题]

我定了如下接口:

public interface IEntity<EntityType>

其中的一个实体:

public class AboutUs : IEntity<AboutUs>

直接调用:

AboutUs aboutUs = new AboutUs();

如果我要去态创建生成IEntity接口应该如何处理。谢谢。

 

问题补充: 对不起,没表达明白。 public interface IEntity<T> { void test(); } public class AboutUs : IEntity<AboutUs> { void test() { ... } } 如上是定义。现在我想动态创建AboutUs对象,但是我只知道对象的字符串形式。且希望创建对象不用反射调用对象的方法。其中方法在接口已定义。如接口中定义了。Test()方法。创建的对象如何调用Test()方法。
elaner的主页 elaner | 初学一级 | 园豆:0
提问于:2009-06-05 09:36
< >
分享
其他回答(4)
0

public interface IEntity<T> where T: EntityType

-------------------------------------------------------

public class AboutUs : EntityType

IEntity<AboutUs> aboutus = .....

-------------------------------------------------------

是这个意思???????????????????????????????

陛下 | 园豆:3938 (老鸟四级) | 2009-06-05 10:07
0

接口无法实例化,你在动态创建的时候应该已经知道了它的具体类型,然后通过

(AboutUs )Activator.CreateInstance(type)

Kolor | 园豆:55 (初学一级) | 2009-06-05 10:09
0

我是被题目诱惑进来的。

之后看了两遍,还是没明白lz的意图。

麒麟.NET | 园豆:3614 (老鸟四级) | 2009-06-05 15:01
0

我明白楼主的意思,不过泛型中间那T是需要咋编译时指定的,无法在运行时动态指定,所以楼主这个问题如果在编译时无法明确T是什么,那就只能反射了。

另外楼主的那个类是由问题的,正确的这样

        public interface IEntity<T>
        {
            void test();
        }
        public class AboutUs : IEntity<AboutUs>
        {
            #region IEntity<AboutUs> Members

            void IEntity<AboutUs>.test()
            {
               
            }

            #endregion
        }

eaglet | 园豆:17139 (专家六级) | 2009-06-06 07:43
0

不是很了解

魔鬼的主义 | 园豆:250 (菜鸟二级) | 2009-06-06 16:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册