0

を決定することができない私はちょうどnugetからのStructureMapを追加し、DefaultRegistryこの構造マップ依存性注入問題:デフォルトなしインスタンスが登録されていると自動的に

パブリッククラスDefaultRegistryのようなファイル修正:レジストリ{ #regionのコンストラクタとデストラクタ

 public DefaultRegistry() { 
      Scan(
       scan => { 
        // scan.TheCallingAssembly(); 
        scan.AssembliesFromApplicationBaseDirectory(
        filter => filter.FullName.StartsWith("TaskManagement")); 

        scan.WithDefaultConventions(); 
        scan.With(new ControllerConvention()); 
       }); 
      //For<IExample>().Use<Example>(); 
     } 

     #endregion 
    } 
} 

コントローラー・コードは、私はのgettinてい

namespace TaskManagement.TaskStatus 
     { 
      public class TaskStatusController : Controller 
      { 
       private readonly IGetTaskStatusList _query; 
       public TaskStatusController(IGetTaskStatusList query) 
       { 
        _query = query; 
       } 
       // GET: TaskStatus 
       public ActionResult Index() 
       { 
        var TaskStatus = _query.Execute(); 
        return View(TaskStatus); 
       } 
      } 
     } 

例外ですグラム StructureMap.StructureMapConfigurationException:Application.TaskStatus.IGetTaskStatusList 『

There is no configuration specified for Application.TaskStatus.IGetTaskStatusList 

1.) new TaskStatusController(*Default of IGetTaskStatusList*) 
2.) TaskManagement.TaskStatus.TaskStatusController 
3.) Instance of TaskManagement.TaskStatus.TaskStatusController 
4.) Container.GetInstance(TaskManagement.TaskStatus.TaskStatusController) 

答えて

0

私のインターフェースとクラスは、他のプロジェクトである「いいえ、既定のインスタンスが登録され、自動的にタイプのために決定することはできません』;この問題を解決する方法は2つあります。これを解決するにはどちらかを使用できます。

  1. scan.AssembliesFromApplicationBaseDirectory();
  2. For()。Use();

    パブリックDefaultRegistry(){ スキャン(スキャン => { scan.TheCallingAssembly(); //scan.AssembliesFromApplicationBaseDirectory(); scan.WithDefaultConventions(); scan.With(新しいControllerConvention()) ; }); For()。Use(); }

関連する問題