c# - 将实例化的 System.Type 作为泛型类<T>的类型参数传递

1、实例化类: 转自 https://www.coder.work/article/226551

        public class MyGenericClass<T>

        string typeName = "System.String";
        Type typeArgument = Type.GetType(typeName);

        Type genericClass = typeof(Generic<>);
        // MakeGenericType is badly named
        Type constructedClass = genericClass.MakeGenericType(typeArgument);

        object created = Activator.CreateInstance(constructedClass);

2、运行方法: 转自 https://blog.csdn.net/guce2885/article/details/108197120

public class YamlConverter
    {
        public object Deserializer<T>(string input)
        {
            object result = null;
            // DO something
            return result;
        }
    }
 
   // 外部函数调用此方法
        public static object Create(string id,string content)
        {
            Type type = TestMap.Map[id];
            YamlConverter yaml = new YamlConverter();
            MethodInfo mi = yaml.GetType().GetMethod("Deserializer").MakeGenericMethod(new Type[] { type });
            object[] l_args = new object[1] { content };
            object testContent = mi.Invoke(yaml, l_args);
            return testContent;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值