我想将连接字符串注入我的存储库,但理想情况下,我希望此连接字符串位于我的web.config connectionStrings部分而不是我的windsor配置中。这可能吗?
我知道我可以使用流畅的界面轻松实现这一点,但我的老板想要一个xml配置文件。
我也知道我可以定义一个属性并在我的windsor配置中使用它来传递参数,但我有其他代码直接从web.config读取连接字符串,并不真正想要两个相同的地方的connectionString。
答案 0 :(得分:1)
有几种方法可以做到这一点:
您可以使用如下界面标记需要connectionstring的类:
interface IRequiresConnectionString {
string ConnectionString {get;set;}
}
然后您订阅事件container.Kernel.ComponentModelCreated
(或编写IContributeComponentModelConstruction
),检查组件实现类型,如果它实现了IRequiresConnectionString,则将connectionString放在组件的参数中。
connectionString
(或您喜欢的任何内容)的约定,您也可以在没有接口的情况下执行上述操作,但如果您不小心为参数命名,则这很容易出错{ {1}}它不会被注入。