统一容器是否可以将自身传递给对象?
即:
public class Something {
public Something(IUnityContainer container) {
...
}
}
最佳答案
简短的答案是肯定的。
当您使用Resolve
方法时,应该自动将其传递。
例如:
IUnityContainer container = new UnityContainer();
var something = container.Resolve<Something>();
此外,如果您要研究的话,这与Prism(在CodePlex上)使用的技术相同。
更新添加的测试:
[TestClass]
public class Spike
{
[TestMethod]
public void unityTest()
{
var container = new UnityContainer();
var something= container.Resolve<Something>();
Assert.AreSame(container, something.Container);
// This passes. Success.
}
}
public class Something
{
public Something(IUnityContainer container)
{
Container = container;
}
public IUnityContainer Container { get; set; }
}
关于unity-container - 统一容器能否将自身的引用作为构造函数参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/827756/