接口
IEntityCollection<T>
{
   object Method();
}

EntityClass1:IEntityCollection<EntityClass1>
{...}
EntityClass2:IEntityCollection<EntityClass2>
{...}在另外一个类中
TestClass
{
  object GetInstance(string path,string className)
  {
      //在这里如果根据nameSpace和className动态获取已转换成接口的EntityClass1或者EntityClass2的实例
     //如
     IEntityCollection<变量T> Iec=(IEntityCollection<变量T>)Assembly.Load(path).CreateInstance(className);
     我不知道这个T该如何处理.
     return Iec.Method();
  }
}请高手帮忙呀.

解决方案 »

  1.   

    我的意思如果我确切的知道要取哪一个类.那么我可用如下方法
    switch className
    {
       case "EntityClass1":
             IEntityCollection<EntityClass1> Iec=(IEntityCollection<EntityClass1>)new EntityClass1;
             return Iec.Method();
             break;
       case "EntityClass2":
             IEntityCollection<EntityClass2> Iec=(IEntityCollection<EntityClass2>)new 
    EntityClass2;
             return Iec.Method();
             break;
    }可是这样的话,如果类比较多,就要用到反射.在编程时我不知道T的具体类型,那么我怎么用这个接口来表示类的实例呢?
    IEntityCollection Iec=(IEntityCollection)Assembly.Load(path).CreateInstance(className);
    上面这种写法是不允许的,必须把泛型标识出来.可是我还不知道那个泛型到底该用什么表示.
      

  2.   

    补充:
    可能类的定义有点乱.必成定义如下:

    EntityClass1:IEntityCollection<C1>
    {...}
    EntityClass2:IEntityCollection<C2>
    {...}
    ////////////////////////////////
    C1
    {...}
    C2
    {...}
      

  3.   

    答案 :http://www.rainsts.net/article.asp?id=381
      

  4.   

    className to Type:Type t = Type.GetType("System.Int32");
      

  5.   

    欢迎各界.Net初学&高手们加入Q群12757054(要经常在线)
    希望大家的问题能够及时的得到解决.