反射工厂类

Posted 佳序

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射工厂类相关的知识,希望对你有一定的参考价值。

   在.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);
            }
        }

以上是关于反射工厂类的主要内容,如果未能解决你的问题,请参考以下文章

工厂模式

Java反射机制用反射改进简单工厂模式设计

利用反射实现工厂模式

传统抽象工厂(通过反射来创建实例)-》目的为了解耦

一抽象工厂模式&&简单工厂+反射改进抽象工厂

JAVA的反射和工厂模式的例子实现