首页 > 解决方案 > 如何验证动态(Expando)对象?

问题描述

我正在寻找一种验证动态对象的方法。动态对象用于内部 API。我知道我可以

  1. 转换为 XML 并使用 XSD 进行验证
  2. 转换为 JSON 并使用 Json.NET .IsValid(schema) 或 Json.NET Schema 包
  3. 验证代码中的每个属性,如HasProperty,如下所示

基于 XML 和 JSON 的方法需要序列化和反序列化,这会在频繁使用时影响性能。基于代码的验证难以维护(尤其是对于分层对象),并且 API 使用者无法轻松使用。

我一直在寻找类似于 XSD 验证的东西,但本机用于动态对象,但没有运气。如果它仅限于 ExpandoObjects,我很好。

我的最低要求:

  1. 识别缺少的必需属性
  2. 识别未指定的属性
  3. 允许可选属性
  4. 允许嵌套对象

标签: c#xmlvalidationdynamicexpandoobject

解决方案


推荐阅读