Castle.Core DictionaryAdapterFactory的替代方案

时间:2014-06-05 18:22:46

标签: .net serialization castle appsettings

Castle.Core DictionaryAdapterFactory是一种非常有用的方法,可以轻松地将AppSettings映射到强类型实体。

http://www.joe-stevens.com/2011/06/09/creating-strongly-typed-wrappers-around-untyped-dictionaries-in-asp-net-using-the-castle-dictionaryadapter

还有很多基于它的解决方案,具有增强功能,如下所示:

https://github.com/TroyGoode/ConfigReader

我唯一不喜欢的是接口限制。 我仍然无法理解为每个设置实体设置接口有什么意义。 这就是为什么我在没有界面限制的情况下询问它的替代方案。

1 个答案:

答案 0 :(得分:2)

Castle字典适配器在后台使用; what the dynamic proxy does是基于接口创建具体对象。然后它拦截对此接口的调用,并将它们转换为对具体对象或适用的任何数据存储的调用;在我们的例子中是配置文件中的设置

因此,这个架构必须依赖于接口,因为它是构建代理的基础。如果你真的想要使用一个对象,你可以从一个具体的对象开始,然后在你的IDE中重构以从中提取接口,但除非你愿意重写一些代码,否则没有开箱即用的方法{{3} }

如果你编写了一些代码,你可能想要探索dynamicproxy的一个有趣的属性,即它不能拦截方法/属性,除非它们是虚拟的;您可能拥有一个具有虚拟属性的具体对象,并拦截其调用以从配置中返回数据。

然而,看到所有需要的工作,我建议你咬紧牙关并继续使用接口进行配置。