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