我正在使用微软的Unity进行依赖注入,我想做如下事情:

IDataContext context = _unityContainer.Resolve<IDataContext>();
var repositoryA = _unityContainer.Resolve<IRepositoryA>(context); //Same instance of context
var repositoryB = _unityContainer.Resolve<IRepositoryB>(context); //Same instance of context

IDataContext context2 = _unityContainer.Resolve<IDataContext>(); //New instance
var repositoryA2 = _unityContainer.Resolve<IRepositoryA>(context2);

RepositoryARepositoryB都有一个接受IDataContext参数的构造函数,我希望Unity用我传递的上下文初始化库.还要注意的是,IDataContext没有注册到Unity(我不想要3个IDataContext实例).

推荐答案

从今天起,他们添加了以下功能:

这是最新一期:

http://unity.codeplex.com/SourceControl/changeset/view/33899

在这里讨论:

http://unity.codeplex.com/Thread/View.aspx?ThreadId=66434

例子:

container.Resolve<IFoo>(new ParameterOverrides<Foo> { { "name", "bar" }, { "address", 42 } });"

.net相关问答推荐

节省用户在整个应用程序中使用的Flutter

从窗体中移除另一个控件中引用的控件时获取设计时通知

.NET Core 中的微服务

判断 Windows 路径中是否存在可执行文件

.NET - WindowStyle = hidden 与 CreateNoWindow = true?

标签从右向左增长

根源是什么?

C#6.0 字符串插值本地化

我可以从我的应用程序中抛出哪些内置 .NET 异常?

如何在 C# 中打开 Excel 文件?

BackgroundWorker 中未处理的异常

哪个单元测试框架?

Linq查询分组并 Select 第一个项目

使用 .NET 中的代码更改桌面墙纸

DataGridView 在我的两个屏幕之一上的可怕重绘性能

更改 SqlConnection 超时

将 SignalR 2.0 .NET 客户端重新连接到服务器集线器的最佳实践

功能说明

序列化和反序列化 .NET 对象的最快方法

连接字符串而不是使用一堆 TextBlocks