我一直在写一些自定义转换器,扩展了Newtonsofts JsonConverter,偶然发现了一个小问题。假设我在一个类中有两个属性,但是它们不能具有相同的值。是否可以在转换器中找到另一个属性的值……例如,说我有一个像这样的模型。
我希望能够在CustomCompareConverter中检查姓氏的值,以确保其与Firstname的值不相同
public class Person
{
[JsonConverter(typeof(CustomCompareConverter), "Surname")]
public string Firstname { get; set; }
public string Surname { get; set; }
}
```
您正在尝试使用真正应该分开的json反序列化过程来做很多事情
将一些外部json转换为您的域对象
验证域对象。
姓氏不能匹配FirstName属性的事实是您域的业务规则。因此,请将其保留在您的域内。您可以:
IValidatableObject
,并实现界面使用JSON反序列化过程将值转换为您的域对象结构,然后使用常规方法来验证您的域对象。