C#動態加載dll創建對象,並調用方法

C#中有一種應用場景,就是根據供應商、服務商、平臺等的不同,可以封裝不同的類庫,但是這些類庫都實現同一套接口;

然後在配置文件或者數據庫中配置,根據供應商、服務商、平臺不同,動態的加載對應的dll,然後創建對象,調用方法;提高系統的擴展性。

 

示例代碼:

// See https://aka.ms/new-console-template for more information
using System.Reflection;
using HotelPlatform;

internal class Program
{
    private static void Main(string[] args)
    {
        Console.WriteLine("Hello, World!");

        Assembly assembly = Assembly.Load("HotelPlatform");

        string className = "HotelPlatform.Order";
        Type type =  assembly.GetType(className);

        //Order o = new Order();
        //o.InsertOrder();
        if (type != null)
        {
            object instance = Activator.CreateInstance(type);

            string methodName = "InsertOrder";
            MethodInfo methodInfo = instance.GetType().GetMethod(methodName);
            if (methodInfo != null)
            {
                methodInfo.Invoke(instance, null);
            }

        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章