kullanırken yapıcı argümanlarını geçmek DI'm için StructureMap kullanıyorum. Ben belirtmek gerekirStructureMap
public class ProductProvider : IProductProvider
{
public ProductProvider(string connectionString)
{
....
}
}
Ben IProductProvider bir örneğini olsun "çalışma zamanında de connectionString şöyle ben StructureMap yapılandırmış
: Ben gibi 1 argüman alır sınıf var düşünün.:
ForRequestedType<IProductProvider>.TheDefault.Is.OfConcreteType<ProductProvider>().
WithCtorArgument("connectionString");
Ancak, ben EqualTo aramak istemiyorum ("bir şey ...") yöntemini burada dinamik çalışma anında bu değeri belirtmek için bazı tesis gerekir gibi.
Sorum: ObjectFactory kullanarak bir IProductProvider örneğini nasıl alabilirim?
Şu anda, böyle bir şey var:
ObjectFactory.GetInstance<IProductProvider>();
Ama bildiğiniz gibi, bu Herhangi bir tavsiye büyük takdir
... çalışmıyor.
someValueAtRuntime öğesinin basit bir değer olduğundan emin olun, herhangi bir Func veya Lambda türü (eğer bunu yapabilirseniz) için değil, aksi takdirde bağımlılık çözümlendiğinde bu işlev çalışır. Bu numarayı, yaptığınız gibi bir bağlantı dizesi enjekte etmek için kullandım. ObjectFactory'yi kurmadan önce dizeyi yerel bir değişkene aldığınız sürece, iyi olmalısınız. – Mel
Yo. Ya birden fazla argümanım varsa, arg1, 2, 3 vb. Ve her argümanı olduğu gibi geçmek istiyorum ama argümanlardan birini null olarak tutmak istiyorum. Bu nasıl yapılır? –
@Mosh cevabınız için teşekkür ederiz, nasıl oluyor da bana bazı nasılValueAtRuneTime geçiyorsunuz? bunun bir örneği lütfen. – wandos