나는 CQS posts by .net junkie을 따르고 QueryProcessor
을 구현했습니다. 이 게시물에서 그가 인용 : - IQueryProcessor 우리가 는 시스템의 모든 쿼리에 대한 해당 쿼리 처리기가 확인하는 테스트를 작성하는 것을 의미합니다 사용IsFosedTypeOf를 autofac에서 simple.injector로 변환
, 는 DI 프레임 워크는 당신을 위해이를 확인할 수 없기 때문에 . 확장 메서드
IsClosedTypeOf(typeof(IQuery<>))
를 사용 autofac을 사용하여 테스트를 만들었습니다이 게시물 다른 사람의 의견에
내가 변환하는 방법을 해결하기 위해 고군분투하지만 simple-injector
를 사용하고 싶습니다/확장 메서드를 만들 IsClosedTypeOf
auto-fac을 사용하지 않고 사용 하시겠습니까?
var allQueryTypes = Assembly.GetAssembly(typeof(IQuery<>)).GetTypes()
.Where(t => t.IsClass && t.IsClosedTypeOf(typeof(IQuery<>)))
.ToList();
나는 test code의
소스 autofac에 익숙하지 않은 나처럼 IsClosedTypeOf
가하는 일조차 100 % 확신합니다.
우리는 한번 Simple Injector에 공개'IsClosedTypeOf' 확장 메소드를 추가하는 것을 고려했으나 결국에는 결정하지 않았습니다. 유용한 확장 방법이지만 Simple Injector API를 오염시킬 수 있습니다. 이것은 일반적인 구조이므로이 확장 메서드는 DI 컨테이너가 아니라 .NET BCL 자체에 추가해야하는 것입니다. – Steven