DI 용 StructureMap을 사용하고 있습니다. 내가 지정해야StructureMap을 사용할 때 생성자 인수 전달
public class ProductProvider : IProductProvider
{
public ProductProvider(string connectionString)
{
....
}
}
의 I는 IProductProvider의 인스턴스를 얻을 때 "런타임에서 을 ConnectionString을 다음과 같이 내가 StructureMap를 구성
을 : 내가 좋아하는 1 개 인자를 클래스를 상상해보십시오. :
ForRequestedType<IProductProvider>.TheDefault.Is.OfConcreteType<ProductProvider>().
WithCtorArgument("connectionString");
그러나, 나는 EqualTo가 전화를하고 싶지 않아 ("뭔가 ...") 방법을 여기에 내가 동적 런타임에서이 값을 지정하는 일부 시설을 필요로한다.
제 질문은 ObjectFactory를 사용하여 IProductProvider의 인스턴스를 어떻게 얻을 수 있습니까?
현재, 내가 좋아하는 뭔가가 있습니다
ObjectFactory.GetInstance<IProductProvider>();
을하지만 당신도 알다시피, 이것은 어떤 조언을 크게 감상 할 수
... 작동하지 않습니다.
someValueAtRuntime은 Func 또는 Lambda (검색 할 수있는 경우)가 아닌 간단한 값이어야합니다. 그렇지 않으면 종속성이 해결 될 때마다 해당 함수가 실행됩니다. 내가하는 것처럼 연결 문자열을 삽입하는 데이 트릭을 사용했습니다. ObjectFactory를 설정하기 전에 문자열을 로컬 변수로 가져 오면 괜찮을 것입니다. – Mel
요. arg1, 2, 3 등 여러 인수가있는 경우 어떻게됩니까? 그리고 모든 인수를 그대로 전달하지만 args 중 하나를 null로 유지하려고합니다. 이 작업을 수행하는 방법? –
@Mosh 답변을 주셔서 감사합니다. 어떻게 당신이 someValueAtRuneTime을 어떻게 전달하고 있는지 말해 주실 수 있습니까? 제발 그것의 예. – wandos