首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

反照创建 Ilist<t>

2012-12-15 
反射创建 Ilistt从动态创建的类,再创建Ilist动态类 的集合,该怎么创建?Type t Type.GetType(动态类

反射创建 Ilist<t>
从动态创建的类,再创建Ilist<动态类> 的集合,该怎么创建?
Type t = Type.GetType("动态类名");
//不是要这个 object o = Activator.CreateInstance(t);
//而是要这个 IList<t> it = new List<t>();

给个思路也行。
[最优解释]


            Type type = Type.GetType("TestDemo.Student");
            Type generic = typeof(List<>);
            generic = generic.MakeGenericType(new Type[] { type });
            var list = Activator.CreateInstance(generic) as IList;
            //out put:System.Collections.Generic.List`1[TestDemo.Student]
            Console.WriteLine(list);

这个意思么?比如我的例子中最后的list就是一个Student的泛型集合。
[其他解释]
  public class cls<T>
    {
        public IList<T> GetList()
        {
            var listType = typeof(List<>).MakeGenericType(typeof(T));
            return Activator.CreateInstance(listType) as IList<T>;
        }
    }
[其他解释]
谢谢您!您的 T 从哪里来的啊
[其他解释]
引用:
public class cls<T>
    {
        public IList<T> GetList()
        {
            var listType = typeof(List<>).MakeGenericType(typeof(T));
            return Activator.CreateInsta……


引用:
谢谢您!您的 T 从哪里来的啊


cls<int> list = new cls<int>();
创建的时候告诉的
[其他解释]
谢谢!我的 T 是反射动态获取的,请理解一下!
[其他解释]
这个意思???

public class Program
    {
        static void Main(string[] args)
        {
            var str = "123";
            var t = typeof(cls).GetMethod("GetList").MakeGenericMethod(str.GetType()).Invoke(null, new object[] { dt });
            Console.ReadLine();
        }
    }
    public class cls


    {
        public static IList<T> GetList<T>(T t)
        {
            return Activator.CreateInstance(typeof(List<>).MakeGenericType(typeof(T))) as IList<T>;
        }
    }
[其他解释]
谢谢 haukwong !
就是要创建 Ilist<TestDemo.Student> ,能再赐教一下,该怎么取值,和赋值?
[其他解释]

引用:
谢谢 haukwong !
就是要创建 Ilist<TestDemo.Student> ,能再赐教一下,该怎么取值,和赋值?

Add(item)
list[0]
和常规的List泛型一样的使用。

热点排行