【发布时间】:2020-08-12 23:02:32
【问题描述】:
在我的课堂上,我的枚举定义如下:
public enum ChangeType {
[EnumMember(Value ="Added")]
Added,
[EnumMember(Value = "Removed")]
Removed,
[EnumMember(Value = "Updated")]
Updated
}
在类定义中,我有一个属性:
public
Dictionary<string, (ChangeType changType, string oldValue, string newValue)>
PropertyChanges { get; set; }
要求:
- 转换为 JSON 时,changeType 应该是文本,而不是数字
- 元组应使用项目名称而不是 Item1、Item2 和 Item3 进行转换
我尝试过的:
- 至于枚举,我尝试将 JsonConverter(typeof(StringEnumConverter))] 放在属性前面(不行)
- 无法对命名元组提出任何建议
问题:
我可以在不编写自定义转换器来转换整个类的情况下实现上述目标吗?
谢谢!
【问题讨论】:
-
你如何序列化你的字典实例?
-
此外,“元组应转换为项目名称而不是项目 1、项目 2 和项目 3”无法实现,因为您的元组实际上是
ValueTuple<T1,T2,T3>并且实际上没有changType、oldValue、newValue成员。您需要为此创建类/结构。