我有一個類有一個構造函數,需要孩子接口的集合如何使用Unity解析一組接口?
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的集合。
我使用統一作爲一個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);
但我不能得到它的工作,我錯過了什麼。我如何配置統一來解析構造函數?