문제

IdynamicValue 인스턴스를 모두 구성하는 간단한 SM 레지스트리가 있습니다. 나는 비 침해 유형 인 몇 가지 대조적 인 주장이 있습니다 (제 경우에는 dateTime과 t의 술어). 인터페이스로 클래스에 랩핑하지 않고도 주입 할 수있는 방법이 있습니까 (자동 유대일 수 있음). 다음 코드 스 니펫은 내가 달성하고 싶은 것을 보여줍니다.

ForRequestedType<IDynamicValue>().AddInstances(x =>
             {
                 x.OfConcreteType<DateTimeGenerator>().WithName("DateTime")
                     .WithCtorArg("keyName").EqualTo("DateTime")
                     .WithCtorArg("startDate").EqualTo(DateTime.Now.AddMonths(-1))
                     .WithCtorArg("minuteIntervalDelta").EqualTo(60);

             });

이 예제는 실행되지만 예외로 실패합니다.

StructureMap 예외 코드 : 202 플러그인 패밀리 시스템에 대해 정의 된 기본 인스턴스 없음.

감사합니다, Nic

편집하다:

Freddy Rios 솔루션은 내가 필요한 것에 완벽하게 작동했습니다. 회의자 주장을 자동으로 배선하고 있다면이 작업을 수행하는 방법이 있는지 여전히 궁금합니다 (따라서 ConstructedBy ())를 사용할 수 없습니다.

도움이 되었습니까?

해결책

이미 모든 인수를 생성자에게 전달하는 경우 대신 건설을 사용할 수 있습니다.

x.ConstructedBy(y => new DateTimeGenerator(
          "DateTime", DateTime.Now.AddMonths(-1), 60
         )
   ).WithName("DateTime");
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top