使用Moles覆盖System.Configuration,而不是单元测试

时间:2012-04-13 03:39:57

标签: c# moles

我正在考虑构建集中式服务,以便为经过适当身份验证的应用程序提供连接字符串。

为了使服务与正常进程兼容,我认为在app.config或web.config中覆盖System.Configuration ConnectionStrings是一件好事。

我曾考虑使用Moles来做这件事,但我找到的唯一例子是UnitTests。

我真正想要的是对System.Configuration.ConfigurationManager类的Mole覆盖,以便我可以专门覆盖ConnectionStringsGet方法以查找自定义样式的连接字符串。如果找不到,则将调用传递给原始ConfigurationManger代码,以便处理正常的连接字符串。

我还没有用Moles编写任何代码,因为我对如何开始这个想法感到头疼。如果有人有关于如何开始的指针,我会接受它并再去挖掘一些。

2 个答案:

答案 0 :(得分:2)

在这种情况下,Moles似乎并不支持尝试覆盖System.Configuration。

我发现了一些帖子,显示了用于自定义system.configuration过程的有希望的方法。

首先是Andy Pook的博客文章http://andypook.blogspot.com/2007/07/overriding-configurationmanager.html,第二篇是CodeProject文章,扩展了Andy http://www.codeproject.com/Articles/69364/Override-Configuration-Manager提供的解决方案

这些文章对我的思考过程很有用。

答案 1 :(得分:0)

您可能最好创建一个接口来从配置文件中获取数据,以及一个只包装静态成员的类。然后,您可以执行自定义逻辑,然后回退到标准静态方法。