菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
226
0

反射工厂类

原创
05/13 14:22
阅读数 32811

   在.net 中,使用反射工厂类,可以方位动态链接库中 对象的元数据,动态创建对象,

具体理论以及实现这里不再详述。

   现在引用一段代码,简单表示一下:

       /// <summary>
        /// 使用没有添加引用的dll
        /// </summary>
        /// <typeparam name="T">要创建对象的类型</typeparam>
        /// <param name="assemblyName">类型所在程序集名称</param>
        /// <param name="nameSpace">类型所在命名空间</param>
        /// <param name="className">类型名</param>
        /// <returns></returns>
        public static T CreateInstance<T>(string assemblyName, string nameSpace, string className)
        {
            try
            {
                string fullName = nameSpace + "." + className;//命名空间.类型名
                //assemblyName = dll所在的绝对路径 例如 c:\TClass\obj.dll
                object ect = Assembly.LoadFile(assemblyName).CreateInstance(fullName);//加载程序集,创建程序集里面的 命名空间.类型名 实例
                return (T)ect;//类型转换并返回
            }
            catch
            {
                //发生异常,返回类型的默认值
                return default(T);
            }
        }

发表评论

0/200
226 点赞
0 评论
收藏