c# - 在 C# 代码中包含数据的格式

标签 c# coding-style project-organization

我有一个使用硬编码值表的程序。例如。

    public static readonly IDictionary<SpecBuild, BuildInfo> Builds = new Dictionary<SpecBuild, BuildInfo> {
            { SpecBuild.WarriorArms,
                    new BuildInfo {
                            Class = Class.Warrior,
                            Name = "Arms",
                            Role = Role.Melee
                    }
                    },
            { SpecBuild.WarriorFury,
                    new BuildInfo {
                            Class = Class.Warrior,
                            Name = "Fury",
                            Role = Role.Melee
                    }
                    },
            { SpecBuild.WarriorProtection,
                    new BuildInfo {
                            Class = Class.Warrior,
                            Name = "Protection",
                            Role = Role.Tank
                    }
                    }, ...

此数据很少更改,因此我可以对它进行硬编码。问题是很难读取此数据,并且格式化不起作用,因为 Resharper 以不同的方式重新格式化它。

理想情况下,我想要一个带有自定义 VS2010 查看器的特殊格式文件,它将此信息显示为表格,并在编译过程中为这些表格生成 C# 代码,或者甚至可能直接将其编译为 MSIL (CLR) .

我正在寻找交 key 解决方案,问题还没有严重到需要任何额外开发的程度。

最佳答案

我会(并且已经多次)将这种类型的数据推送到一个文件中(可能通过 resx)。然后通过您选择的解串器加载数据。如果它需要轻松编辑,可能是通过 JavaScriptSerializer 或 JSON.NET 的 JSON。如果它被告知数据和性能是关键,也许更硬核(可能是二进制)。 XML 当然也是一个可行的选择。

如果情况允许,其他选项可能包括嵌入式数据库。

关于c# - 在 C# 代码中包含数据的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6074628/

相关文章:

c# - Azure 数字孪生 API 无法使用本教程中所述的 DefaultAzureCredential 身份验证方法

perl - 我应该避免在 Perl 中嵌套 if 语句吗?

.NET 项目/命名空间组织问题

c# - C# 中是否有命名参数的样式指南?

scala - 用于选项的惯用 Scala 代替 if/else/else 链

django - 为什么将 Django 模板存储在其关联的应用程序中是不明智的?

version-control - 如何组织我的所有代码、数据、脚本、任务等?

c# - 如何拥有与 OnPropertyChanged 一起使用的 UserControl 的可绑定(bind)属性

c# - 无法引用 UWP Windows.Devices.Portable

c# - 为什么大多数 ASP.NET MVC 示例直接在表示层访问数据库?