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

本文关键字:消息 实现 位置 最佳 一个 | 更新日期: 2023-09-27 18:30:27

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

1.By 应用程序配置文件,但是如果我将所有按摩放在应用程序配置上,那么消息将有"n"个键,并且从可读性的角度来看,它会搞砸应用程序配置。

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

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

对此感到困惑的是,这是一种最佳实践,任何人都可以在这一点上指导我,应该如何实施.

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

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

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

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

这样,您的主app.config文件仍然是精简和可读的,并且所有消息都位于单独的文件中。这为您提供了更改文本而不重新编译的选项。

如果要

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

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";
    }
}

但我真的建议你改用资源。这样,您就可以在需要时轻松实施本地化。您还可以创建多个资源,以便您可以为错误消息创建一个资源,为您需要的任何其他类别创建另一个资源。

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

如果需要,请为他们提供ID,类型和基于模块的规范。

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