【发布时间】:2015-11-06 20:46:51
【问题描述】:
我有一个带有构造函数的类,它采用一组子接口
public class Manager : IManager
{
public Manager(IEnumerable<IDataAccess> dataAccess)
{
IDataAccess 是一个基础接口
public interface IFooDataAccess : IDataAccess
{
public interface IBarDataAccess : IDataAccess
{
public interface IBazDataAccess : IDataAccess
{
每个都有具体的实现。 当我解析 IManager 时,我希望 dataAccess 参数填充 FooDataAccess、BarDataAccess 和 BazDataAccess 的集合。
我用unity作为IoC,目前注册的是:
public static void RegisterTypes(IUnityContainer container)
{
container.RegisterTypes(AllClasses.FromAssemblies(
typeof(IManager).Assembly),
WithMappings.FromMatchingInterface,
WithName.Default,
WithLifetime.ContainerControlled);
我在解决方案中也有一些其他类(因此使用注册模式),所以我想保留它。我一直在尝试自己注册 IManager:
var allDataAccesses = container.ResolveAll<IDataAccess>();
var parameter = new InjectionConstructor(allDataAccesses);
container.RegisterType<IManager, Manager>(parameter);
但我无法让它工作,我错过了什么。如何配置unity来解析构造函数?
【问题讨论】:
标签: c# unity-container