2012-04-04 10 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)Webサーバーで実行しています。 –

答えて

0

実際には登録がありませんでした。

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

私は完全にどのように理解していないOR TraceSourceのを使用していますが、今のところ、私は働いてみましょう:コンテナ設定に次の行を追加すると、問題を解決しているように見えます!

関連する問題