我可以减少通用类的注册吗?

时间:2015-10-20 13:15:47

标签: c# unity-container

我用类创建了一个接口:

public interface IBackgroundSubscriber<T>
{
    ...
}

public class BackgroundSubscriber<T> : IBackgroundSubscriber<T>
{
    ...
}

然后我想用Unity IoC容器注册它:

private void RegisterServicesAndViews()
{
    _container.RegisterType<IBackgroundSubscriber<TypeA>, BackgroundSubscriber<TypeA>>();
    _container.RegisterType<IBackgroundSubscriber<TypeB>, BackgroundSubscriber<TypeB>>();
}

然后运行它:

public void Initialize()
{
    _container.Resolve<IBackgroundSubscriber<TypeA>>();
    _container.Resolve<IBackgroundSubscriber<TypeB>>();

    ... 
}

但现在看来我必须经常指定TypeATypeB(3次)。 我能让这更聪明吗?

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作

_container.RegisterType(typeof(IBackgroundSubscriber<>),
                        typeof(BackgroundSubscriber<>));

Registering Type Mappings for Generics