c# - 如何验证动态(Expando)对象?
问题描述
我正在寻找一种验证动态对象的方法。动态对象用于内部 API。我知道我可以
- 转换为 XML 并使用 XSD 进行验证
- 转换为 JSON 并使用 Json.NET .IsValid(schema) 或 Json.NET Schema 包
- 验证代码中的每个属性,如HasProperty,如下所示
基于 XML 和 JSON 的方法需要序列化和反序列化,这会在频繁使用时影响性能。基于代码的验证难以维护(尤其是对于分层对象),并且 API 使用者无法轻松使用。
我一直在寻找类似于 XSD 验证的东西,但本机用于动态对象,但没有运气。如果它仅限于 ExpandoObjects,我很好。
我的最低要求:
- 识别缺少的必需属性
- 识别未指定的属性
- 允许可选属性
- 允许嵌套对象
解决方案
推荐阅读
- python - 获取类属性的属性名
- redux - RXJS 订阅主题 - 操作必须是普通对象。使用自定义中间件进行异步操作
- java - Eclipse 霓虹灯挂起加载 org.eclipse.ui.navigator
- python - 如何使用 discord.py 事件处理程序 on_voice_state_update 仅在用户加入语音频道时运行
- http - 避免对缓存文件的请求
- c# - dotnet core 2 Web C# 对象引用未设置为对象的实例?
- c++ - 在 C++ 中以编程方式更改 Enable32BitAppOnWin64
- azure-data-lake - 多列上的连接是否存储笛卡尔积?
- javascript - html 按钮更改 div 内容或再次切换
- c# - System.InvalidOperationException: 'XML 文档 (0, 0) 中存在错误。'