我目前使用Ninject在WCF服务应用程序中创建接口的实例。Ninject - 如何动态选择一个实现绑定到一个接口
Bind<IObjA>().To<ObjA>().InRequestScope();
Bind<IObjB>().To<ObjB>().InRequestScope();
Bind<IObjC>().To<ObjC>().InRequestScope();
它很好用,但我们将有几个IObjC的实现。对于IObjA/IObjB的接口继续为实现进行流体分配,但允许为IObjC配置分配,我有哪些选择?
我发现一个related question on SO,但我不知道我是否可以同时支持流体和可配置的方法。
例如,我可以在IObjC中使用Ninject.extensions.xml,同时继续为IObjA和IObjB使用上述方法吗?
建议对IObjC进行条件赋值吗?这看起来很脏,但同时显得非常简单。
if (condition1)
Bind<IObjC>().To<ObjC1>().InRequestScope();
else if (condition 2)
Bind<IObjC>().To<ObjC2>().InRequestScope();
此外,我知道其他框架,如城堡支持XML配置,但我想继续使用Ninject。
2 - 想象一下,你想在不同的机器相同PROGRAMM文件(.exe),读取来自不同数据库或XML(不相同的数据结构)数据S o您需要配置至少在每种情况下使用的DAL。你会怎么做? – Morvader 2012-11-06 12:43:22
你会不会在app.configs中有不同的连接字符串?否则,那将是拥有XML配置的好时机。 – 2012-11-06 18:29:28