0

问题: 我正在使用 C# 在 ASP .NET 中进行开发,并且我想验证电子邮件。为此,我正在使用正则表达式(我们称之为 EmailRegularExpressionValidator),我的问题是如果我想要/需要的话,我应该把正则表达式放在哪里轻松更改它们,而无需重新编译代码。验证是在业务层的“IntermediateServices”中进行的,所有的事情都来做他们的事情。

解决方案1: web.config

我有很多 Windows 服务,其中一个有自己的配置。如果我将 EmailRegularExpressionValidator 放入其中,我必须全部写入,当我更改一个时,我必须全部更改。不好。

解决方案 2:数据库

有时,我必须验证 1000 封邮件(甚至更多),如果我将 EmailRegularExpressionValidator 放入数据库中,我必须进行 1000 次查询才能知道 EmailRegularExpressionValidator 的值。我想把它放在内存中,但我有网络服务。不是一个好主意。

解决方案 3:资源

只有在网站中才能轻松更改资源。当我将它们放在业务层时,我无法轻易更改它们。

解决方案4: BD + Session

就像我之后说的,我正在使用网络服务....

希望我是明确的,希望你能帮助我。

对不起我的英语(来自葡萄牙的问候)。

非常感谢。

4

2 回答 2

1

在你的情况下,我会推荐配置文件。.NET 配置文件有一个层次结构,它都从 machine.config 开始,所有 .NET 应用程序都从该配置中读取设置。

如果您不覆盖应用程序配置文件中的键,应用程序将使用 machine.config 中的设置。它是最核心的点,可用于所有应用程序,更改一次,它会更改所有应用程序。

它可以在这里找到:C:\Windows\Microsoft.NET\Framework\

然后取决于您使用的框架,

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG

或在这里:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

示例:只需将其<configuration>放在 machine.config 中的标记之后。

<appSettings><add key="myParameter" value="myValue"/></appSettings>

然后在你的代码中,

Configuration con = ConfigurationManager.OpenMachineConfiguration();
ConfigurationSection consec = con.Sections["myParameter"];

您必须添加对 System.Configuration 的引用

希望能帮助到你。

于 2012-05-17T09:21:44.230 回答
0

我用了一个更聪明的方法......

相反,按照建议编辑 machine.config 我只是使用缓存来做我想要的魔法!

你可以在这里找到一篇关于如何使用它的好文章:http: //codemaverick.blogspot.pt/2007/01/caching-in-windows-application-i-was_8639.html

于 2012-05-22T15:46:07.997 回答