在C#中在运行时加载DLL

在C#中在运行时加载DLL,第1张

在C#中在运行时加载DLL

成员在编译时必须是可解析的,才能直接从C#调用。否则,您必须使用反射动态对象。

反射

namespace ConsoleApplication1{    using System;    using System.Reflection;    class Program    {        static void Main(string[] args)        { var DLL = Assembly.LoadFile(@"C:visual studio 2012ProjectsConsoleApplication1ConsoleApplication1DLL.dll"); foreach(Type type in DLL.GetExportedTypes()) {     var c = Activator.CreateInstance(type);     type.InvokeMember("Output", BindingFlags.InvokeMethod, null, c, new object[] {@"Hello"}); } Console.ReadLine();        }    }}

动态(.NET 4.0)

namespace ConsoleApplication1{    using System;    using System.Reflection;    class Program    {        static void Main(string[] args)        { var DLL = Assembly.LoadFile(@"C:visual studio 2012ProjectsConsoleApplication1ConsoleApplication1DLL.dll"); foreach(Type type in DLL.GetExportedTypes()) {     dynamic c = Activator.CreateInstance(type);     c.Output(@"Hello"); } Console.ReadLine();        }    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4895302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存