工廠模式基於反射動態創建對象


首先在配置文件中添加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是抽象類


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM