我有一个使用硬编码值表的程序。例如。
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当然也是可行的选择。
如果情况允许,其他选项可能包括嵌入式数据库。