1
如何将参数传递给解析器以创建对象?服务分辨率/位置和参数
我有我想要传递到数据服务对象UOW对象,我希望能够确保在一个特定序列中创建的数据服务对象的创建使用一个UOW对象
例如
using (var context = Resolver.GetService<IUoW>())
{
var dataService1 = Resolver.GetService<IDataService1>();
var dataService2 = Resolver.GetService<IDataService2>();
// do some stuff
context.Commit();
}
选项1,通过IUoW进入Resolver.GetService呼叫 - 没有用于IDataServiceX实现无构造知识
选项2,将属性添加到IDataServiceX为IUoW - 没有设置它会很容易完成,程序员如何知道这个属性需要设置
要回答选项2中的问题,一种方法是IDataServiceN的实现检查已设置的属性并抛出一个适合开发人员的异常。虽然不是最好的。 – harriyott 2012-01-12 09:53:11
是的,我真的想要一个配置的解决方案或编译时异常 – 2012-01-12 10:15:46