Dependency injection 使用IoC容器检索运行时设置的最佳方法

Dependency injection 使用IoC容器检索运行时设置的最佳方法,dependency-injection,inversion-of-control,ioc-container,Dependency Injection,Inversion Of Control,Ioc Container,我有一个C dll项目,我必须将运行时设置存储在外部XML文件中,该dll将用于ASP.NET/ASP.NET MVC应用程序中,我还必须将运行时设置存储在外部文件中 哪个IoC容器可用于创建具有从特定外部文件或app.config/web.config加载的运行时设置的对象,并且也适用于运行在中等信任状态下的web应用程序?如有任何指导/指南,将不胜感激 到目前为止,我只找到以下文章: 更新 我正在根据当前的记录类型,将邮件从dll发送到数量可变的SMTP服务器。对于类型A,我使用给定的SMT

我有一个C dll项目,我必须将运行时设置存储在外部XML文件中,该dll将用于ASP.NET/ASP.NET MVC应用程序中,我还必须将运行时设置存储在外部文件中

哪个IoC容器可用于创建具有从特定外部文件或app.config/web.config加载的运行时设置的对象,并且也适用于运行在中等信任状态下的web应用程序?如有任何指导/指南,将不胜感激

到目前为止,我只找到以下文章:

更新

我正在根据当前的记录类型,将邮件从dll发送到数量可变的SMTP服务器。对于类型A,我使用给定的SMTP服务器+端口;对于类型B,我使用一组备用的服务器+端口值。当然,我希望能够在部署后修改这些值,所以我将它们存储在XML文件中

如果我将SMTP设置存储为一个SMTPConfiguration类,该类具有两个属性SMTPServer作为String和SMTPPort作为Int32,那么是否可以根据给定的记录类型从IoC容器返回所需的对象,以及读取运行时设置以生成返回对象的最佳方式是什么

更新2

假设我正在配置文件中存储以下参数:ASMTPServer、BSMTPServer、asmtport、BSMTPPort。 我可以使用Castle DictionaryAdapter将所有这些设置作为AppConfiguration类的属性读取

如果我使用类型a记录作为参数,建议使用什么方法指定所需的SMTPConfiguration类应使用ASMTPServer和ASMTPPort值;如果我使用类型B记录作为参数,建议使用BSMTPServer和BSMTSupport值?另外,如何指定此过程中需要AppConfiguration


温莎可以加载外部文件。。。您只需将新的WindsorContainernew XmlExpressorPath写入文件;或者类似的事情。我是凭记忆写的,所以我可能会把类名弄错,但你明白了。这就是你要找的吗?@Krzysztof Koźmic:不是真的,我将我的应用程序设置作为一个类保留,并具有smtp名称、端口、邮件地址等属性,我想将同一个IoC容器用于作为DI的应用程序和从外部配置文件加载设置。我不确定我是否正确理解您的意思-如果您想从现有对象加载配置,可以编写从AbstractStreamResource继承的自定义IResource,将对象反序列化到内存中,并将其作为流进行读取。如果您的对象的形状与配置文件不同,您可以编写自定义IConfigurationStore。实际上,让我们将问题颠倒过来-您的配置对象来自哪里?也许你可以将设置输入到容器中,然后从那里创建那个对象?你能举个例子说明它是什么样子的,以及你是如何在对象和配置文件中使用它的吗?@Krzysztof Koźmic:谢谢你的时间和耐心,我已经更新了这个问题。