new MyClass()
numaralı telefonu ararsanız, StructureMap hiç kullanılmaz. StructureMap yapılandırmasının hiçbir miktarı davranışı değiştirmez.
ObjectFactory.GetInstance<MyClass>()
numaralı telefonu ararsanız, StructureMap varsayılan olarak kurucuyu daha fazla parametre ile çağırır.
Eğer StructureMap farklı kurucusunu kullanmak istiyorsanız, (PHeiberg cevabı ile) yapıcısı belirtebilirsiniz:
x.SelectConstructor<IMyClass>(() => new MyClass(null));
Ya da sadece Use()
aşırı yüklenmesini kullanarak örneğini nasıl oluşturulacağı açıkça StructureMap söyleyebilirim kabul eden bir Func<>
: Joshua cevabı tüm yönlerini kapsayan
x.For<IMyClass>().Use(ctx => new MyClass(ctx.GetInstance<IMyService>()))
2 parametresi olan bir MyClass kurucusunu kullanmak istersam ne olur? 'ctx.GetInstance <>' yalnızca 1 tip parametresine izin verir. –