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

    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)。

我正在寻找一个交钥匙解决方案,问题还不严重到不能保证进行任何额外的开发。

最佳答案

我会(并且有很多次)将这种类型的数据推送到文件中(也许通过resx)。然后通过您选择的反序列化器加载数据。如果需要轻松编辑,则可以通过JavaScriptSerializer或JSON.NET进行JSON。如果说数据是关键,而性能是关键,那么也许是更硬的东西(也许是二进制的)。 XML当然也是可行的选择。

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

10-02 04:27
查看更多