【问题标题】:Serialize/ Deserialize (fairly) Simple Objects in CLR for RESTful Web Services为 RESTful Web 服务在 CLR 中序列化/反序列化(相当)简单对象
【发布时间】:2014-10-01 20:46:58
【问题描述】:

我的 SQL Server 数据库中有一些基于 CLR 的过程,它们需要使用 RESTful Web 服务、发布列表和检索状态集合。

我以为我可以使用 JavaScriptSerializer 并使用 JSON,但我在让 SQL Server 让我使用时遇到了很多麻烦(JSON.NETSystem.Script.Serialization 不是我被允许播放的程序集显然,依赖树变得有点丑)。

然后我想,我可以使用 XmlSerializer,但它似乎期待 REST 服务不提供的大量元数据(合同样式)的东西,而且它似乎不允许你转换你的生成的 XML 到特定类型(如 Dictionary<int, string>decimal[]),就像我期望使用 JavaScriptSerializerJSON.NET 序列化程序一样。

我花了最后一个小时寻找似乎应该是一个简单的答案或简单的方法,我希望我的 Google-fu 只是感染了埃博拉病毒。我找不到任何关于如何做到这一点的官方建议,而且当这个问题一直出现时,甚至考虑滚动我自己的序列化器/反序列化器似乎很疯狂。

如何在不经历代码英雄的情况下解析来自 CLR 程序集的 RESTful 服务请求和响应?

【问题讨论】:

  • 好吧,我知道您不能从 XML 转换为字典,因为 XML 不能强制执行唯一键。我认为你能做的最好的事情是 IEnumerable
  • 我也遇到了和你一样的问题,请问你有解决方案吗?

标签: c# rest serialization clr sqlclr


【解决方案1】:

创建与您尝试解析的 XML 匹配的 POCO(您可以使用注释使对象模型与 XML 模型匹配),然后使用 XMLSerializer 解析为这些 POCO 的对象图。

此站点将帮助您完成这项工作,因为通常系统会生成动态程序集来完成此操作(而 SQL 不会喜欢这样):

http://social.msdn.microsoft.com/Forums/sqlserver/en-US/3fa5dce3-b0f3-44f8-9b7b-65439f1c98ae/cannot-deploy-xmlserializers-clr-assemblies

您确定这必须在数据库中完成/应该在数据库中完成吗?

【讨论】:

  • 嗯,不,它应该在托管代码程序集中完成,但我确实需要使用数据库中的 API 资源。你能详细说明一下 POCOS 来制作我上面提到的简单对象吗?
猜你喜欢
  • 1970-01-01
  • 2011-12-21
  • 2020-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
相关资源
最近更新 更多