.net 如何解决组装。加载性能命中?
我正在重构一些代码,我陷入了进退两难的境地 假设我们有以下场景:.net 如何解决组装。加载性能命中?,.net,assemblies,assembly.load,.net,Assemblies,Assembly.load,我正在重构一些代码,我陷入了进退两难的境地 假设我们有以下场景: 包含许多通用接口和类的核心程序集 包含更多专用类的库程序集 库程序集引用核心程序集。到目前为止还不错 由于我正在重构它,所以需要核心程序集创建在库程序集中声明的对象 好的,为了避免循环引用问题,我决定在需要时加载库程序集(并且只在类型初始化时的一个非常特定的点上需要它) 然而,整个事情的装载性能一落千丈 有人知道如何解决这个问题吗 编辑以添加 有些人请求我用来加载的代码。。。这真的很琐碎 /* * Load the Libra
编辑以添加 有些人请求我用来加载的代码。。。这真的很琐碎
/*
* Load the Library Assembly
*/
Assembly asm = Assembly.Load("Library, PublicKeyToken=...");
/*
* Get desired type
*/
Type t = asm.GetType("Library.DesiredType")
/*
* Get the default constructor
*/
var ctor = type.GetConstructor(new Type[] {})
程序集只应加载一次到AppDomain。对load assembly X的重复调用应返回已加载的程序集。你能发布你如何尝试的代码吗?你如何衡量“绩效”?您是否分析了您的应用程序,以验证加载程序集确实会对性能造成影响?确实,在启动时加载单个程序集会使性能变得不可接受?这个程序集有多大?它小得可笑:52K(52224字节)如果你正在重构,为什么不将公共依赖项重构成第三个程序集,这样你就不存在循环依赖性问题,因此不需要依赖动态加载?@Aaronaught OP使用了一个糟糕的措辞来描述这种情况,但除了可怕的词语之外“循环引用”,该场景是一个完全合法的设置。你是对的,问题不是程序集加载。它完全无关…所以,回到绘图板上!