有没有办法让统一容器将自己传递给对象?
即:
public class Something {
public Something(IUnityContainer container) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
ben*_*wey 23
简短的回答是肯定的.
这应该在您使用Resolve方法时自动传递.
例如:
IUnityContainer container = new UnityContainer();
var something = container.Resolve<Something>();
Run Code Online (Sandbox Code Playgroud)
此外,这与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; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6285 次 |
| 最近记录: |