2012-04-04 2 views
0

OpenRasta에서 StructureMap을 사용하려고합니다. 내 Configuration 클래스는 IDependencyResolverAccessor을 구현합니다.StructureMap을 사용하는 OpenRasta DI 문제

container.Configure(x => 
    { 
     x.For<IFileResourceRepository>().Use(
      r => new FileResourceSqlRepository(ConnectionString)); 
     x.For<ILog>().Use(l => new FileLog(LogFileName, _logLevel)); 
     x.For<ILogger>().Use<ProTeckLogger>(); 
     x.For<ILogger<CodecLogSource>>().Use<ProTeckLogger<CodecLogSource>>(); 
     x.For<ILogger<IOLogSource>>().Use<ProTeckLogger<IOLogSource>>(); 
     x.For<ILogger<OperationModelLogSource>>().Use<ProTeckLogger<OperationModelLogSource>>(); 
     x.For<ILogger<PipelineLogSource>>().Use<ProTeckLogger<PipelineLogSource>>(); 
     x.SetAllProperties(
      policy => 
      policy.Matching(
       prop => (prop.PropertyType.IsAssignableFrom(typeof (ILogger))))); 
     x.SetAllProperties(policy => policy.OfType<IFileResourceRepository>()); 
     x.SetAllProperties(policy => policy.OfType<ILog>()); 
     x.SetAllProperties(policy => policy.OfType<ILogger<CodecLogSource>>()); 
     x.SetAllProperties(policy => policy.OfType<ILogger<IOLogSource>>()); 
     x.SetAllProperties(policy => policy.OfType<ILogger<OperationModelLogSource>>()); 
     x.SetAllProperties(policy => policy.OfType<ILogger<PipelineLogSource>>()); 
    }); 

나는 다음과 같은 오류 받고 있어요 : 내가 등록을 누락 나는 아마 가정

StructureMap Exception Code: 202 
No Default Instance defined for PluginFamily System.Diagnostics.TraceSource, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 

을 여기에 컨테이너를 구성하는 내 코드는? 내가 다른 일을 잘못하고있는 것일까?

감사합니다.

+0

도움이 될지 모르지만 Visual Studio (Cassini) 웹 서버에서 실행 중입니다. –

답변

0

실제로 등록이 누락 된 것으로 보입니다.

x.For<TraceSource>().Use(new TraceSource("OpenRasta")); 

나는 완전히 이해가 안 돼요 또는 TraceSource를 사용하지만, 지금은 내가 노력 할게요 : 컨테이너 구성에이 줄을 추가하면 문제가 해결되었습니다!