2015-02-03 2 views
0

MVC5에서 구조도 3.1.2.138을 사용하고 있습니다. 내 IoC 클래스에서 Objectfactory를 사용하려고하지만 Objectfactory이 쓸모없고 컨테이너를 사용해야한다고 나와 있지만이 작업을 수행 할 수있는 방법을 찾을 수 없습니다.MVC5의 구조도

public static IContainer Initialize() { 
     var BS_WebDataContextConnectionString = "Data Source=xxx;Initial Catalog=xxx;Integrated Security=True;MultipleActiveResultSets=True"; 

     ObjectFactory.Initialize(x => 
      { 
       x.Scan(scan => 
        { 
         scan.Assembly(Assembly.GetCallingAssembly()); 
         scan.WithDefaultConventions(); 
        }); 

       //DataContext 
       x.For<iBS_WebDataContext>().Use<BS_WebDataContext>() 
        .Ctor<string>("connectionString") 
        .Is(BS_WebDataContextConnectionString); 

       //Repositories 
       x.For<IReadOnlyEvidenceTypeRepository>().Use<EF6ReadOnlyEvidenceTypeRepository>(); 
       x.For<IReadOnlyStatusCategoryRepository>().Use<EF6ReadOnlyStatusCategoryRepository>(); 



       //Services 
       x.For<IEvidenceTypeService>().Use<EvidenceTypeService>(); 
       x.For<IStatusCategoryService>().Use<StatusCategoryService>(); 


      }); 
     return ObjectFactory.Container; 

} 컨테이너 방법이 변환 방법

이 가

사람이 나에게 예를 들어 줄 수 있을까?

답변

0

는 그것은 너무 (좋은 깔끔한 유지하려면 레지스트리로 구성을 이동 포함 같이 할 것이다 다음과 같이 등록

WebsiteRegistry.cs

public class WebsiteRegistry : Registry 
{ 
    public WebsiteRegistry() 
    { 
     x.Scan(scan => 
     { 
      scan.Assembly(Assembly.GetCallingAssembly()); 
      scan.WithDefaultConventions(); 
     }); 

     //DataContext 
     var BS_WebDataContextConnectionString = "Data Source=xxx;Initial Catalog=xxx;Integrated Security=True;MultipleActiveResultSets=True"; 
     x.For<iBS_WebDataContext>().Use<BS_WebDataContext>().Ctor<string>("connectionString").Is(BS_WebDataContextConnectionString); 

     //Repositories 
     x.For<IReadOnlyEvidenceTypeRepository>().Use<EF6ReadOnlyEvidenceTypeRepository>(); 
     x.For<IReadOnlyStatusCategoryRepository>().Use<EF6ReadOnlyStatusCategoryRepository>(); 

     //Services 
     x.For<IEvidenceTypeService>().Use<EvidenceTypeService>(); 
     x.For<IStatusCategoryService>().Use<StatusCategoryService>(); 
    } 
} 

:.

IContainer yourContainer = new Container(); 
yourContainer.Configure(c => 
{ 
    c.IncludeRegistry<WebsiteRegistry>(); 
}); 
+0

감사합니다 JoeMighty. 매력처럼 작동합니다 레지스트리 상속 때문에 "x"를 생략해야했습니다. – chittybang

+0

문제 없으니 기꺼이 도와 드리겠습니다! –

관련 문제