首页 > 其他 > 详细

工厂模式基于反射动态创建对象

时间:2019-06-18 14:50:23      阅读:127      评论:0      收藏:0      [点我收藏+]

首先在配置文件中添加appsetting节点:

<appSettings>
  <add key="AssemblyPath" value="ConsoleApp11"/>
  <add key="NameSpace" value="ConsoleApp11"/>
  <add key="ClassName" value="Student"/>
</appSettings>

  

核心代码:

private static readonly string assemblyName = ConfigurationManager.AppSettings["AssemblyPath"];//程序集
private static readonly string nameSpace = ConfigurationManager.AppSettings["NameSpace"];//命名空间
private static readonly string className = ConfigurationManager.AppSettings["ClassName"];//类名

public static object CreateInstance(string assemblyName, string nameSpace, string className)
{
    try
    {
        string fullName = nameSpace + "." + className;//命名空间.类型名
        object ect = Assembly.Load(assemblyName).CreateInstance(fullName);//加载程序集,创建程序集里面的 命名空间.类型名 实例
        return ect;//类型转换并返回    
    }
    catch (Exception ex) { Console.WriteLine(ex.Message + "===" + ex.StackTrace); return false; }
}

控制台调用:

 static void Main(string[] args)
        {
            DataBase db = CreateInstance(assemblyName, nameSpace, className) as DataBase;
            db.add();
            Console.ReadKey();
        }

DataBase是虚方法

工厂模式基于反射动态创建对象

原文:https://www.cnblogs.com/lkcq/p/11045059.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!