【发布时间】:2010-10-11 09:23:30
【问题描述】:
以下代码仅用于演示目的。
假设我有 2 个组件(businessService 和 dataService)和一个 UI 类。
UI类需要业务服务,businessService需要dataService,dataService依赖connectionString。
形成我需要解析业务服务的 UI 类,所以我正在编写以下代码:
var service = container.Resolve<BusinessService>(new { dependancy = "con string 123" }));
请注意,依赖是 connectionString 构造函数参数。
但是上面的代码不起作用,说 dataService 期望依赖不满足。
无法创建组件“dataService” 因为它有依赖关系 使满意。数据服务正在等待 以下依赖项:
键(具有特定键的组件) - 未注册的依赖关系。
所以作为一种解决方法,我正在这样做:
var service = container.Resolve<BusinessService>(new { dataService = container.Resolve<IDataService>(new { dependancy = "123" }) });
但从设计、编码风格和许多角度来看,这并不是一个好方法。
所以,如果您能告知为什么它不能以简单的方式工作,或者您有更好的解决方法,请分享。
【问题讨论】:
-
您能否提供一个简短但完整的 BusinessService、DataService 和dependancy/connectionString 定义?删除任何不会直接导致重现问题的代码。
-
公共类 BusinessService { public BusinessService(DataService dataService) {} }
-
public class DataService { public DataService(string dependency) {} }
-
温莎动态参数:kozmic.net/2009/12/10/…
标签: .net castle-windsor