我想为我的IOC容器创建一个接口包装,所以我不必对特定的依赖关系。我的问题是,我有一些服务类中的公司ID是字符串。我想制作通用接口方法,如IOC Container和primatives当创建包装
T Resolve<T>()
其中T是服务接口。
现在我用StructureMap幕后,知道如果混凝土构造函数接受的companyID所以我会做这样的事情:
ObjectFactory.With("companyid").EqualTo("someCompanyID").GetInstance<ICompanyService>();
我换这种接口中的方法调用的: ICompanyService GetCompanyService(string companyID)
我现在拥有它的方式,应用程序必须初始化StructureMaps配置和具体类,传回服务,必须知道很多关于构造函数。我希望不会发生,并使包装通用。有没有一种很好的方法,而不必将companyID
添加到接口上的每个方法?
我有SM抽象了一点,只是不完全。我正在看一些制作封装的开源代码,但它没有考虑到ctors中的基元。 – CSharpAtl 2009-12-08 16:03:04
@ CSharpAtl-重新考虑您的设计。像这样的框架必须与最低公分母一起工作。您需要确定能否切换您的IOC比能够使用StructureMap特定功能更重要。 – RichardOD 2009-12-08 16:05:08
@RichardOD我同意。 – pattersonc 2009-12-08 16:08:35