【问题标题】:C# Load Assembly on runtimeC# 在运行时加载程序集
【发布时间】:2014-10-30 12:21:27
【问题描述】:

我有一个正在运行的应用程序,它在运行时加载一个程序集。我有一个文件夹,里面装满了 .dll 文件。每当调用者发出请求时,我的应用程序都会查看选定的 dll 并加载它。这是我的代码的 sn-p。

if (File.Exists(Path.Combine(assemblySavePath, proxy.AssemblyFileName)))
{
    Assembly = Assembly.LoadFile(Path.Combine(assemblySavePath, proxy.AssemblyFileName));  
    // after this just use it normally
}

基本上每当有请求时,我都会加载它。所以我的问题是,在性能方面,这是正确的方法吗?因为我想知道是否有一种方法可以先查看内存/GAC/AppDomain,检查它是否存在,而不需要我每次有请求时都去 LoadFile()。

【问题讨论】:

  • 为了节省内存,您可以使用另一个AppDomainload/unload 程序集。性能方面,您应该按照@nvoigt 的回答建议将它们加载到当前的AppDomain 中。

标签: c# runtime .net-assembly


【解决方案1】:

您至少应该有一个您已经加载的程序集的列表并检查它。由于您无法从 AppDomain 中卸载程序集,因此您不必再次尝试加载它。

【讨论】:

  • 是的,这正是我正在寻找的方式。如何检查运行时?以及如何再次检索 Assembly 实例?
  • 您可以将路径和程序集保存到字典中。但是为什么以后还需要程序集实例呢?
猜你喜欢
  • 2012-08-02
  • 2020-06-16
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 2012-02-07
  • 2018-04-24
  • 2023-03-23
相关资源
最近更新 更多