Я пытаюсь создать модульный тест, который гарантирует, что все мои бизнес-классы (я называю их классами команд и запросов) могут быть разрешены с помощью Windsor. У меня есть следующий модульный тест:
[TestMethod]
public void Windsor_Can_Resolve_All_Command_And_Query_Classes()
{
// Setup
Assembly asm = Assembly.GetAssembly(typeof(IUnitOfWork));
IList<Type> classTypes = asm.GetTypes()
.Where(x => x.Namespace.StartsWith("MyApp.DomainModel.Commands") || x.Namespace.StartsWith("MyApp.DomainModel.Queries"))
.Where(x => x.IsClass)
.ToList();
IWindsorContainer container = new WindsorContainer();
container.Kernel.ComponentModelBuilder.AddContributor(new SingletonLifestyleEqualizer());
container.Install(FromAssembly.Containing<HomeController>());
// Act
foreach (Type t in classTypes)
{
container.Resolve(t);
}
}
Это происходит со следующим исключением:
No component for supporting the service MyApp.DomainModel.Queries.Organizations.OrganizationByRegistrationTokenQuery+<>c__DisplayClass0 was found
Я понимаю, что <>c__DisplayClass0
типы связаны с компиляцией Linq, но как я могу отфильтровать эти типы без жесткого кодирования имени в моем запросе Linq?