【问题标题】:Unity Container, Interface infinite loopUnity Container,接口无限循环
【发布时间】:2011-12-15 20:08:25
【问题描述】:

我需要有关配置 MS Unity 的帮助。

我有一个实现接口的类:

public class ProjectService : IProjectService

在这种配置下效果很好:

_conainer.RegisterType<IProjectService, ProjectService>();

另一个,缓存,实现,我需要将第一个具体类型注入缓存具体类型。

public class CachedProjectService : IProjectService
{
    public CachedProjectService(IProjectService projectService, ICacheStorage cacheStorage)
    {}
}

如何配置 Unity 以返回注入第一个实现的缓存版本?

【问题讨论】:

    标签: inversion-of-control unity-container containers


    【解决方案1】:

    这就是所谓的装饰器布线,你可以这样实现:

    _container.RegisterType<IProjectService, ProjectService>("innerService");
    
    _container.RegisterType<IProjectService, CachedProjectService>(
        new InjectionConstructor(
            new ResolvedParameter<IProjectService>("innerService"), 
            new ResolvedParameter<ICacheStorage>()
        ));
    

    希望对你有帮助

    【讨论】:

    • 完美的托马斯...就在现场!
    • 刚开始研究 IoC 及其伟大的... :)
    • 我会建议一本好书:manning.com/seemann。真的很好。
    猜你喜欢
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多