現在、実行時にタイプを解決するためにUnityを使用しています。実行時にモジュールをロード/アンロードするようにUnityを設定することができます
IUnityContainer _container = new UnityContainer();
_container.LoadConfiguration();
var instance = _container.Resolve<IGenericLib>("Class1");
instance.DoSomething();
したがって、設定セクションでは合計3つのタイプが定義されていますが、現時点では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のどれがメモリにロードされていない、
しかし、モーメント荷重の設定が呼び出され、私はただのClass1をreolvingていますが、私のassmblyのすべての3つは、ロードされています。
私は、これらのモジュールのロード?現在解決され、使用後にアンロードされるだけでロードモジュールを制御できる方法はあります。
Thanskを、そして私が使用した後にそれらをアンロードすることができます方法はありますが、あなたがオーバーロードメソッドを使用することができますロードするモジュール内容を制御するために、 – Simsons