DI konsepti için yeni ve structuremap için yeni. Tüm arabirimlerimin AssemblyA
içinde bulunduğu bir senaryoyu doldurmaya çalışıyorum ve tüm uygulamalarım AssemblyB
'da. Ben AssemblyA
olduğunu ve CustomerService
sınıf assemblyB
içindedir AssemblyA
Structuremap kullanarak Çoklu Montajlardan Bağımlılık Enjeksiyonu
public class Customer(ICustomerService)
{
}
ICustomerService
gelen arabirimde bağımlılığı var yapıcısındaki AssemblyB
sınıfın örneğini enjekte etmek StructureMap kullanmak istiyorum. Structuremap'in bu kurucuda CustomerService
örneğini enjekte etmesini istiyorum. Sınıfın adı ile öneki ve I
ile aynı arabirimin adı aynıysa, varsayalım. Structuremap bunu otomatik olarak tanıyacaktır.
Aşağıdaki yapılandırmayı yazdım.
x =>
{
x.Scan(scan =>
{
scan.Assembly("AssemblyA");
scan.Assembly("AssemblyB");
scan.TheCallingAssembly();
scan.WithDefaultConventions();
});
ama bana hata
StructureMap Exception Code: 202
No Default Instance defined for PluginFamily AssemblyA.ICustomerService, AssemblyA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Herhangi bir yardım yararlı olacaktır verir. Varsayılan kuralları kullanmak ve her arayüzü bir sınıfa kaydetmekten kaçınmak istiyorum.
Teşekkürler.
Tamam, neler olduğunu anlayabildim. Arayüzü, taramakta olduğum farklı meclislerde uygulayan çok sayıda sınıfım vardı. Bu, soruda bildirdiğim orijinal hatayı üretir. Tüm tarama düzeneklerinde SM'nin Varsayılan Sözleşmesini karşılayan yalnızca bir sınıf varsa, soruda yayınladığım kod düzgün çalışmalıdır. Daha kötüye gitmediğim için kötüyüm ama umarım herkesin kafasını vurmasına yardım eder. x.IncludeNamespace ("AssemblyA") eklediğimde; hat temelde SM için sınıf montajını filtreledim ve çalışmaya başladı :) –