Structure Map에서 mvc.net을 사용하여 모든 저장소와 서비스를 검색하고 등록합니다. 이제 싱글 톤으로 등록하고 캐시하고 싶습니다. 어떻게해야합니까?어셈블리에서 자동 스캔 유형으로 구조 맵을 구성하고 싱글 톤으로 캐시하는 방법은 무엇입니까?
IContainer container = new Container(x => {
// Register Repositories and Services
x.Scan(y => {
y.AssemblyContainingType<SomeRepository>();
y.AssemblyContainingType<SomeService>();
y.IncludeNamespaceContainingType<SomeRepository>();
y.IncludeNamespaceContainingType<SomeService>();
});
// Register Controllers
x.Scan(y => {
y.TheCallingAssembly();
y.AddAllTypesOf<IController>().NameBy(type => type.Name.Replace("Controller", ""));
});
});
+1 BTW, 전화 할 필요가 없습니다. a.AddAllTypesOf(); Scan()에서는 SingletonConvention.Process()가 해당 유형을 등록합니다. –
ozczecho
왜 'Scan'에 3 줄이 필요합니까? 'a.With (새로운 SingletonConvention());와'a.AddAllTypesOf ();'의 차이점은 무엇입니까? 그 두 가지는 정말로 필요한가요? 다른 인터페이스가있는 경우 두 줄을 다시 사용해야합니까? –
tyron
지나치게 장황하지만 챔피언처럼 일했습니다. 진술은 사용해야한다고 생각하지만 API를 변경하지는 않을 것이라고 생각합니다. 나는 API를 바꾸지 않을 것이라고 말한 후에도 여전히 더 잘할 수 없다는 것을 의미하지는 않습니다. –