c# - 从 xml 注入(inject)依赖绑定(bind)

标签 c# c#-4.0 dependency-injection ninject

如您所知,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/

相关文章:

azure - 使用 DevelopmentStorage 的 CloudStorageAccount 凭据

c# - 使用 Quartz.NET 3.0.3 和简单注入(inject)器如何进行构造函数注入(inject)

c# - 如何在 .NET 中使用 GDI+ 中没有的 Windows GDI 方法?

c# - 在等待服务回调时 session 超时时通知客户端

c# - 自动装箱和拆箱在 Java 和 C# 中的行为是否不同

c# - HP fortify XML 外部实体注入(inject)

c#-4.0 - 何时在参数上使用 C# out 关键字

java - Spring - Bean 创建中的 StackOverflowError

c# - Ioc/DI - 如何使用已注册的依赖项?

c# - 从调试器中隐藏字段