IOC 컨테이너와 공유 서비스 구현을 다른 두 프로젝트에서 참조하는 세 번째 프로젝트 (클래스 라이브러리)에 넣습니다.
-------------------각 프로젝트에 대해 StructureMap 레지스트리를 유지하여 자체 구성을 처리하는 경향이 있습니다. 내 주 프로젝트는 각 종속성에 대한 참조를 추가합니다. 내 메인에는 일반적으로 컨테이너 생성 및 구성을 담당하는 부트 스트 래퍼 클래스가 있습니다. (가능한 경우 정적 ObjectFactory를 피합니다.)
public class ApplicationBootstraper
{
public IContainer Container { get; set; }
public ApplicationBootstraper()
{
Container = new Container(x=>
{
x.AddRegistry<SettingsRegistry>();
x.AddRegistry<ProjectRegistry>();
//more registries go here or application specific configuration.
});
}
}
프로젝트가 StructureMap을 인식하는 다른 프로젝트에 대한 종속성을 갖는 것과 관련하여. 버전 2.5.4에는 현재 레지스트리에 다른 레지스트리를 포함하는 기능이 추가되었습니다.
예를 들어 종속성을 가져야하는 "공통"프로젝트가 있습니다. 다음을 수행 할 수 있습니다.
public class ProjectRegistry : Registry
{
public ProjectRegistry()
{
IncludeRegistry<CommonsRegistry>();
Scan(scan =>
{
scan.TheCallingAssembly();
scan.WithDefaultConventions();
});
}
}
도움이 되었기를 바랍니다.
출처
https://stackoverflow.com/questions/2005824