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

时间:2009-10-22 07:04:12

标签: dependency-injection inversion-of-control ioc-container

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

哪个IoC容器可用于创建一个对象,其中包含从特定外部文件(或app.config / web.config)加载的运行时设置,还适用于以中等信任方式运行的Web应用程序?非常感谢任何howto / tutorial。

到目前为止,我只发现了这篇文章:

更新

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

如果我将SMTP设置存储为具有2个属性的SMTPConfiguration类(SMTPServer为String,SMTPPort为Int32),是否可以根据给定的记录类型从IoC容器返回所需的对象,以及读取运行时设置以构建返回对象的最佳方法是什么?

UPDATE2

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

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