C# 字符串资源值作为枚举字符串部分值?

标签 c# resources enums

使用 VS2010 和 .net V4.0 我想实现以下目标:

我的项目中已经有 2 个资源文件,用于 2 种语言 - 英语和捷克语。

我必须说 .net 中的资源管理非常出色,例如在实现 String 时我什至感到惊讶:

string desc = Strings.ResourceManagerDesc

这会获取与线程的当前区域性关联的字符串。

现在我正在尝试创建一个枚举,它可以从字符串资源中解释枚举的字符串部分。通过以下方式(此代码不起作用):

public enum DownloadStatus
{
 1 = Strings.DownloadState_Complete,
 2 = Strings.DownloadState_Failed,
 3 = Strings.DownloadState_InProgress
}

这是一个虚构的例子,但你可以在这里看到重点。由于上面的代码不起作用,是否有最佳实践方法来实现我想要的?

最佳答案

这个问题很老,但没有公认的答案,我一直在寻找一个好的方法来做到这一点。

这是我所做的,我为我的枚举构建了一个扩展,以便它从资源管理器返回一个值:

public enum EventType
    {
        NewVersion = 1,
        Accepted = 2,
        Rejected = 3,
        BruteForce = 4
    }

    public static class EventTypeExtension
    {
        public static string Display(this EventType type)
        {
            return Strings.ResourceManager.GetString("EventType_" + type);
        }
    }

希望对大家有所帮助!

关于C# 字符串资源值作为枚举字符串部分值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2973079/

相关文章:

c# - Include 扩展方法的类库引用

c++ - 如何解析CVT1100类型:STRING in VisualStudio 2010

java - 无法从 spring boot .jar 读取文件

Java Enum 数据长值被设置为零

angular - Angular 形式控件类型中的枚举?

c - 如何在 Visual Studio 2012 中使用枚举

c# - Entity Framework 包括来自一对多关系的单个对象

c# - 创建类型为 "derived class"的对象

c++ - 学习 C++ 网络的资源

c# - 创建一个类似 C# 和 XNA 'Monster Dash' 的游戏