.net 将值存储在代码中而不是web.config中
我最近开始开发一个相当大的应用程序,我注意到很多设置存储在静态类/属性中,而不是web.config中:.net 将值存储在代码中而不是web.config中,.net,web-config,.net,Web Config,我最近开始开发一个相当大的应用程序,我注意到很多设置存储在静态类/属性中,而不是web.config中: public static class FormSettings { public const string HttpPostContentType = "application/x-www-form-urlencoded"; public const string HttpPostMethodValue = "POST"; } 我能看到这样做的唯一原因是,大量的设置会使将
public static class FormSettings
{
public const string HttpPostContentType = "application/x-www-form-urlencoded";
public const string HttpPostMethodValue = "POST";
}
我能看到这样做的唯一原因是,大量的设置会使将它们存储在单个文件中变得不方便
除了不重新编译代码就无法更改这些设置之外,这种方法还有其他缺点吗
编辑:
好的,上面的例子不是最好的:
public static class ThirdPartyApiSettings
{
public const string EmployeeXmlNodeName = "Employee";
public const string FirstNameXmlNodeName = "FirstName";
}
你有更多的东西需要编译,你有更多的依赖关系,如果不重建整个应用程序,你就不能改变它们
而且,它不是一个编程部分,应该分开。您还可以将控制器、视图、操作和dao放在一个文件中(在Web应用程序中),这样做是可行的,但您不能这样做:)存储设置实际上取决于应用程序和场景。 在您的方法中,最大的问题是所有内容都是硬编码的。 如上所述,您必须考虑:
- “变量”的使用频率
- 改变的可能性有多大
- 应用程序的哪个部分需要访问此变量
- 您要存储哪些信息(设置)
- Web.config(appsettings)-不建议使用这种方法来存储大量设置列表(尽管它只是名称值的集合)。此外,您不能在那里存储复杂类型(嗯……您可以,但我从未见过有人序列化对象并保存到web.config)。这种方法适合存储字符串值。这种方法的最大问题(至少对我来说)是每次在web.config中添加/更改某些内容时都会重新编译应用程序李>
- 资源文件-这对内容非常有用-尤其是如果您想将其本地化。您也可以在那里存储设置。问题是,它是经过编译的,您无法轻松更新它
- 自定义类-用于存储成本和枚举(不会经常更改),但如果您想存储可能更改的内容,这不是最佳方法
- 自定义XML文件-我非常喜欢这种方法,因为它允许您在不重新编译应用程序的情况下对其进行更改-问题是您必须编写自己的解析器,并且非常小心-很容易错误格式化XML文件:)
- 数据库-可本地化、远程、可由不同应用程序访问、易于更改
希望能有所帮助。为什么这些人希望存储在web.config中?坦白地说,我甚至不确定它们是否有价值,因为这通常是非常特定于场景的。。。你不需要让你的系统中的每一个值/文字都是一个应用程序设置或一个const……(不应该是代码>应用程序/X-www-Frave-UrnEngult/<代码>?)同样地,考虑这个特定值有多频繁的变化,以及可能伴随它的变化。(GET和POST有非常特殊的含义,不太可能随心所欲地在它们之间进行更改)。如果重新编译有那么大的不便,我会说:花点时间让部署过程变得更好。C#中的编译单元是一个程序集,而不是一个文件,因此编译器并不真正关心文件的数量或数量。