【发布时间】:2015-12-01 13:14:20
【问题描述】:
这是代码:
public class ParameterDictionary : Dictionary<HydroObjectIdentifier, string>
{
public void WriteToJson(string jsonFilePath)
{
string json = Newtonsoft.Json.JsonConvert.SerializeObject(this, formatting: Newtonsoft.Json.Formatting.Indented);
System.IO.File.WriteAllText(jsonFilePath, json);
}
}
public struct HydroObjectIdentifier
{
public string Name { get; set; }
public string TypeName { get; set; }
public HydroObjectIdentifier(string name, string typeName)
{
this.Name = name;
this.TypeName = typeName;
}
}
...这是 Json 结果。请注意,它显示了类名 RSEngine.HydroObjectIdentifier 而不是它的参数,这在我的代码中不是有意的。
{
"RSEngine.HydroObjectIdentifier": [
{
"myString"
},
...
如 cmets 中所述,预期行为是将 Name 和 TypeName 写入 json,而不是类的名称。
【问题讨论】:
-
那么你的意图是什么?
-
@TheVillageIdiot 预期的行为是其参数的seralizytion,也就是说,类似于
{"Name": "myName", "TypeName": "typeName"}。 -
什么是
Parameters?ParameterDictionary的成员有哪些?请先阅读minimal reproducible example。 -
@ArghyaC 由于Parameters类被正确序列化,我认为没有必要在帖子中描述它。此外,它是一个令人讨厌的遗产代码,不会为当前的问题提供太多帮助。我希望这会有所帮助。
-
@ArghyaC 好的,现在我明白了。如果真的没关系,我可以写
string或其他任何东西让任何人复制代码并将其粘贴到他们的 IDE 中。我要编辑帖子。