私はDIの概念と構造マップが初めてです。AssemblyA
すべてのインターフェースが にあり、すべての実装が にあるシナリオを完全に埋めようとしていますAssemblyB
。AssemblyB
Structuremap を使用して、コンストラクターにインターフェイスに依存するクラスのインスタンスを挿入したいAssemblyA
public class Customer(ICustomerService)
{
}
ICustomerService
は にAssemblyA
あり、CustomerService
クラスは にありassemblyB
ます。StructuremapCustomerService
がこのコンストラクターにインスタンスを挿入するようにします。クラスの名前がインターフェイスの名前と同じ場合、接頭辞が and であると想定していますI
。Structuremap はそれを自動的に認識します。
以下の構成を書きました。
x =>
{
x.Scan(scan =>
{
scan.Assembly("AssemblyA");
scan.Assembly("AssemblyB");
scan.TheCallingAssembly();
scan.WithDefaultConventions();
});
しかし、それは私にエラーを与えます
StructureMap Exception Code: 202
No Default Instance defined for PluginFamily AssemblyA.ICustomerService, AssemblyA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
デフォルトの規則を使用して、各インターフェイスをクラスに登録することを避けたいと考えています。