如您所知,Ninject 内核绑定(bind)是这样的。
kernel.Bind<IMyService>().To<MyService>();
我想从 xml 中获取 MyService。像这样的 WebConfig 或 App.Config。
<add key="service" value="MyNamespace.MyService">
我可以在代码中得到这个字符串。但是我该如何使用它
kernel.Bind<IMyService>().To<???>();
或者 Niniject 可以默认支持这个吗?
最佳答案
您可以使用非泛型 To(Type)
重载。
从您的 app.config 获取类型:
string service = ConfigurationManager.AppSettings["service"];
Type serviceType = AssemblyContainingYourType.GetType(service);
使用类型:
kernel.Bind<IMyService>().To(serviceType);
总而言之,请理解 Ninject
鼓励您在代码中配置绑定(bind),而不是依赖配置文件。
关于c# - 从 xml 注入(inject)依赖绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092780/