2012-09-21 44 views
2

我有一些常数,我想在应用程序级别,如存储过程名称,用户消息和其他。我很少有机会改变这些资源。资源字典与.cs文件

请让我知道在我们的应用程序中保持常量的良好做法。

资源字典优于.cs文件。

问候 AA

回答

3

对于初学者来说,你是在正确的轨道想着这些东西都在。魔术字符串和其他魔法值有很多原因。

这里有一些指导我们使用:

  1. 常量,只允许东西都是现实世界的常数。如果您需要使用“我的优惠券位于{0}”作为格式字符串,则可以使用RESOURCE。
  2. 事情可能会改变,EVER,不是常数。你有几个选择这个东西。
  3. 如果它不是你的逻辑的一部分,它不会在源代码中。它位于以下某个外部位置,并在源代码中被引用,以便您不必重新编译即可进行更改。

我们一般每个程序集有三个文件,根据需要: 首先是一个常量文件。这通常与Constants.cs一样简单。把你的常量(AND只读静态编译时不变,永不改变)在这个文件中。你也可以包含可配置的东西,但必须有一个默认值。

internal class Constants 
{ 
    public const LogLevel DEFAULT_LOG_LEVEL = LogLevel.Error; 

    public static readonly string APP_NAME = Configuration.ApplicationName ?? "Test Application"; 
} 

其次,读取配置值并将其作为静态值返回的文件。这通常是Configuration.cs并负责返回所有配置值。这使您不必重新编译来更改连接字符串,处理设置或其他内容。实际值位于.ini文件,web.config或app.config,数据库表或源代码之外的其他位置。如果下面的例子你可以在整个代码中对ConfigurationManager.AppSettings [“ApplicationName”]进行细化,但是如果你想更改该appsetting的密钥呢?你必须找到一个重命名所有对它的引用。只需花费额外的30秒来完成像这样的操作,以及所有的Configuration.ApplicationName。

internal class Configuration 
{ 
    public static string ApplicationName 
    { 
     get 
     { 
      return ConfigurationManager.AppSettings["ApplicationName"]; 
     } 
    } 
} 

最后,一个或多个资源文件。这是我们把图标,图像,不寻常的字体,用于显示目的的本地化(或只是可变化)字符串等东西的地方...

有没有具体的方法做这个东西,但我认为上述将给你一个开始的地方。