У меня есть несколько классов, которые являются производными от интерфейса
public interface IMetadataItem
{
Do();
}
public class MyClass1 : IMetadataItem
{
public void Do()
{
}
}
public class MyClass2 : IMetadataItem
{
public void Do()
{
}
}
Я хотел бы связать эти классы интерфейса IMetadataItem с конструктором другого класса
public class MetadataService: IMetadataService
{
public MetadataService(IEnumerable<IMetadataItem> metadataItems)
{
//metadataItems always has zero(0) items
}
}
К сожалению, я всегда получаю пустой IEnumerablelist.
Конфигурация Unity выглядит как
container.RegisterTypes(
AllClasses.FromLoadedAssemblies().Where(type => typeof(IMetadataItem).IsAssignableFrom(type)),
WithMappings.FromAllInterfaces,
WithName.TypeName,
WithLifetime.ContainerControlled);
container.RegisterType<IMetadataService, Services.MetadataService>(new ContainerControlledLifetimeManager(),
new InjectionConstructor(new ResolvedArrayParameter<IMetadataItem>()) );
Есть идеи, что я делаю неправильно?