我正在重构一些代码,但我陷入了两难境地。
假设我们有以下场景:
- 包含许多通用接口和类的核心程序集
- 包含更专业类的库程序集。
库程序集引用核心程序集。到现在为止还挺好。
由于我正在重构它,核心程序集需要创建在库程序集中声明的对象。
好的,为了避免循环引用问题,我决定在需要时加载库程序集(并且仅在类型初始化的非常特定的点需要它)。
然而,整件事情的加载性能却直线下降到了一个黑暗的深渊……
有谁知道如何解决这个问题?
编辑添加
有些人要求我用来加载的代码......这真的很简单。
/*
* 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[] {})