【问题标题】:C# - Dynamically Loaded Assembly Access To Parent Assembly ReferencesC# - 对父程序集引用的动态加载程序集访问
【发布时间】:2013-11-22 21:53:46
【问题描述】:

我正在尝试实现插件式架构。插件和主应用程序都使用了核心的外部库。 JSON.NET 就是此类库的一个很好的例子。

在我开发插件时,我参考了主应用程序中引用的同一个 JSON.NET 版本。编译插件时,我没有将外部库与插件合并,因为我希望引用解析到主应用程序加载的相同程序集。

但是,这不起作用。当我尝试在主应用程序中调用插件的方法时,出现“无法加载程序集...”错误。

如何让动态加载的插件解析引用主应用程序的引用?

【问题讨论】:

  • 永远不要使用 Assembly.LoadFile()
  • Assembly.LoadFrom(path)....假设您的 MainApp 正在引用具有插件需要实现的“常见”类型的程序集...

标签: c# system.reflection


【解决方案1】:

一些注意事项:

  • 以您不需要来自核心系统的内部引用的方式设计您的架构。在示例中,您可以为核心中所需的函数创建包装器,这些函数可以在插件中使用。
  • 如果是 .NET 4.0+:取消动态关键字
  • 使用反射
  • 运行时编译

【讨论】:

    猜你喜欢
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    相关资源
    最近更新 更多