Unity分层注入
|
请帮助我解决以下目标:
我有一个接口IRepository定义了属性Context,作为一个示例:
interface IRepository
{
IContext Context { get; set; }
}
interface IOne : IRepository
{
}
interface ITwo : IRepository
{
}
实现中的属性Context具有DependencyAttribyte,并且所有实现均按以下示例注册:
container.RegisterType<IOne, One>();
container.RegisterType<ITwo, Two>();
container.RegisterType<IContext, Context>();
我想从继承属性\“ Context \”的值解析实现\“ One \”的实现\“ Two \”;
作为一个例子:
public class One : IOne
{
[Dependency]
public IContext Context { get; set; }
[Dependency]
public IUnityContainer Container { get; set; }
public void Test1()
{
Context = new Context();
var two = Container.Resolve<ITwo>();
// I want that these values would been equal
Assert.AreEqual(Context, two.Context);
}
}
如果您将能够展示出另一种方法来解析具有值继承的实现,那就太好了。
没有找到相关结果
已邀请:
2 个回复
裸雷胜檀哭
。它只是一种短暂的生活方式,但是该实例将在整个对象图中重复使用。但是,要使此方法起作用,您将不得不从
方法替换对
的调用。始终喜欢使用构造函数注入而不是属性注入,并防止从类内部调用容器。这种编码方式称为服务定位器反模式。
师埠女