我有一个Repository
,它接受一个Provider
,这需要将ProviderCredentials
对象传递给它。 ProviderCredentials
对象是一个类,但是它的值仅在运行时才知道,因为它们位于<applicationSettings />
部分的Web.config中。
我如何从Web.config中取出值,构建ProviderCredentials
对象,然后使用Ninject将其注入(inject)到Provider
中?不确定是否重要,但是Provider
和ProviderCredentials
类与同一解决方案中的MVC项目位于不同的项目中。
最佳答案
您可以考虑通过工厂方法来绑定(bind)ProviderCredentials
,从而迫使内核使用您自己的自定义逻辑来解析其引用:
kernel.Bind<ProviderCredentials>()
.ToMethod(context =>
new ProviderCredentials(ConfigurationManager.AppSettings["Foo"])
);