在C#中从一个位置实现消息的最佳实践

时间:2014-11-14 11:19:50

标签: c#

我必须在winform应用程序的一个地方管理对话框消息框的消息内容, 我主要担心的是,所有内容都应该在一个地方,因此程序员可以轻松访问它并且不会在每个代码文件中创建重复的消息,其次是它可以轻松找到这些消息,现在我可以管理它通过:

1.通过 app config 文件,但如果我将所有按摩放在app config上,那么就会有" n"消息的密钥数量,它会将app app配置为可读性的观点。

  1. 使用Class ,创建一个类" MessageConstant"并将所有消息放在这个类中,但同样,所有消息都在平面类中,它会搞乱,没有分类,在类的基础上划分类内的区域。

  2. 通过使用类而不是在类中创建类作为类别并将这些常量放在这些类中。

  3. 我很少混淆它,这是一个最佳实践,可以指导我这一点,它应该如何实施。

4 个答案:

答案 0 :(得分:4)

我建议使用内置的资源。这将使您能够通过生成的代码成员在C#中引用它们,并且还可以构建转换功能以供日后使用。

答案 1 :(得分:1)

如果您想使用第一个选项,您可以使用配置文件的特殊功能,允许您在单独的文件中指定部分:

<configuration>
    <appSettings configSource="appSettings.config" />
</configuration>

这样,您的主app.config文件仍然精简且可读,并且所有邮件都存在于单独的文件中。这使您可以选择更改文本而无需重新编译。

答案 2 :(得分:0)

如果要使用常量并对消息进行分类,可以在其中创建多个类:

public class Messages 
{
    public class Errors 
    { 
        public const string UnspecifiedError = "An unspecified error has occurred";
    }

    public class Others
    {
       public const string Something = "Some other message";
    }
}

但我真的建议你改用资源。这样,您可以在需要时轻松实现本地化。您还可以创建多个资源,这样您就可以拥有一个用于显示错误消息的资源,而另一个用于您需要的其他类别。

答案 3 :(得分:0)

创建一个消息表,从数据库中检索它们。这是我能想到的最好的做法。

如果需要,给他们提供ID,类型和模块规范。

然后创建一个简单的类,通过它们的ID从数据库中检索。