2009-03-16 4 views
1

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 PluginFamily System.DateTime에 대해 정의 된 기본 인스턴스

감사합니다, 닉

편집 :

프레디 리오스 (Freddy Rios) 솔루션은 내가 필요로하는 것에 완벽하게 작동했습니다. (만약 ConstructedBy()를 사용할 수 없었기 때문에) 어떤 컨스트럭터 인자를 자동 배선했다면 궁금하다.

+0

... 같은 문제가 발생했습니다. – ozczecho

답변

1

모든 인수를 이미 생성자에 전달했다면, 대신 ConstructedBy :

x.ConstructedBy(y => new DateTimeGenerator(
      "DateTime", DateTime.Now.AddMonths(-1), 60 
     ) 
    ).WithName("DateTime"); 
관련 문제