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

        }
    }
}
复制代码

 

posted on   荆棘人  阅读(668)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2019-08-21 .netFramework中新增的功能—.net最新信息—.net的发展
2017-08-21 Cookie窃取实验

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示