【发布时间】:2018-09-27 18:54:47
【问题描述】:
我有几个从接口派生的类
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
}
}
不幸的是,我总是得到空的 IEnumerable 列表。
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>()) );
知道我做错了什么吗?
【问题讨论】:
-
嗨朋友,你要传递数组中有多少项?
-
大概有 15 件。
标签: c# dependency-injection unity-container