首页 / C# / c# – 在运行时更改.dll
c# – 在运行时更改.dll
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 在运行时更改.dll,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1570字,纯文字阅读大概需要3分钟。
内容图文
![c# – 在运行时更改.dll](/upload/InfoBanner/zyjiaocheng/817/8f2b336304c14e13bc9598fa154cd33a.jpg)
我有一个庞大的应用程序,我的解决方案的一个项目报告.
我想在不构建项目的情况下添加新报告(更新报告),只需添加.dll文件.我读到了大会和
AppDomain,但我不知道为新报告添加新的dll以及如何在运行时更新旧报告真的很好吗?
这是我的例子,它需要我的第一个dll,但第二次没有.第一个dll – 总和,秒 – 扣除.
static void Main(string[] args)
{
try
{
//first domain
AppDomain domain = AppDomain.CreateDomain("MyDomain");
AssemblyDll asb1 = new AssemblyDll();
Console.WriteLine(asb1.AssemblyMethod(1));
AppDomain.Unload(domain);
Console.ReadKey();
//second domain
AppDomain newDomain = AppDomain.CreateDomain("myNewDomain");
AssemblyDll asb2 = new AssemblyDll();
Console.WriteLine(asb2.AssemblyMethod(2));
AppDomain.Unload(newDomain);
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
public class AssemblyDll
{
public string AssemblyMethod(int version)
{
//loading .dll
Assembly assembly = Assembly.LoadFrom(@"../../../../Assembly/DynamicDLL" + version + ".dll");
Type type = assembly.GetType("DynamicDLL.Dynamic");
object instance = Activator.CreateInstance(type);
MethodInfo[] methods = type.GetMethods();
//invoke method
object result = methods[0].Invoke(instance, new object[] { 5, 3 });
return result.ToString();
}
}
我的.dll文件来自:
namespace DynamicDLL
{
public class Dynamic
{
public int DynamicMethod(int a, int b)
{
return a + b;
//return a - b;
}
}
}
解决方法:
如果你想写插件之类的东西,比如插件方法,你应该看看MEF http://msdn.microsoft.com/en/library/vstudio/dd460648.aspx
MEF允许您动态使用任何程序集,甚至将dll删除到文件夹中,并从中构建MEF目录.
实际上是Visual Studio并在内部使用MEF来实现可扩展性(插件……)
内容总结
以上是互联网集市为您收集整理的c# – 在运行时更改.dll全部内容,希望文章能够帮你解决c# – 在运行时更改.dll所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。