我需要有关配置MS Unity的帮助。
我有一个实现接口的类:
public class ProjectService : IProjectService
使用此配置可以正常工作:
_conainer.RegisterType<IProjectService, ProjectService>();
我另一个,缓存,实现,我需要第一个注入缓存混凝土类型的具体类型。
public class CachedProjectService : IProjectService
{
public CachedProjectService(IProjectService projectService, ICacheStorage cacheStorage)
{}
}
如何配置Unity以返回缓存版本并注入第一个实现?
答案 0 :(得分:3)
它被称为装饰器布线,你可以这样做:
_container.RegisterType<IProjectService, ProjectService>("innerService");
_container.RegisterType<IProjectService, CachedProjectService>(
new InjectionConstructor(
new ResolvedParameter<IProjectService>("innerService"),
new ResolvedParameter<ICacheStorage>()
));
希望有所帮助