0
目前,我正在使用Unity在运行时解析类型。可以将Unity配置为在运行时加载和卸载模块
IUnityContainer _container = new UnityContainer();
_container.LoadConfiguration();
var instance = _container.Resolve<IGenericLib>("Class1");
instance.DoSomething();
所以,我只是reolving的Class1的那一刻,虽然我共有三种类型,在配置部分定义。
<unity>
<namespace name="GenricType.Interface"/>
<namespace name="Sample.Type1"/>
<namespace name="Sample.Type2"/>
<namespace name="Sample.Type3"/>
<assembly name="GenricType.Interface"/>
<assembly name="Sample.Type1"/>
<assembly name="Sample.Type2"/>
<assembly name="Sample.Type3"/>
<container>
<register type="IGenericLib" mapTo="Class1" name="Class1"/>
<register type="IGenericLib" mapTo="Class2" name="Class2"/>
<register type="IGenericLib" mapTo="Class3" name="Class3"/>
</container>
</unity>
现在我设置一个断点来看看加载的模块和这里的快照。
之前我呼叫负载配置,没有我的aseemblies被加载到内存中,
但当下负载配置是所谓的,我的三个ASSMBLY被加载,虽然我只是reolving的Class1 。
有没有一种方法,我可以控制这些模块的加载?就在负载当前解决模块,使用后卸载。
Thansk,以及是否有办法使用后,我可以卸载它们 – Simsons