Csharp/C#教程:有没有办法从DataContract导出XSD架构分享


有没有办法从DataContract导出XSD架构

我正在使用DataContractSerializer将我的类序列化/反序列化为XML。 一切正常,但在某些时候,我想为这些XML文件的格式建立一个独立于实际代码的标准模式。 这样,如果在序列化过程中出现问题,我总是可以返回并检查标准模式应该是什么。 或者,如果我确实需要修改模式,则修改是一个明确的决定,而不仅仅是稍后修改我的代码的影响。

此外,其他人可能正在编写其他可能不是基于.NET的软件,需要从这些XML文件中读取。 我希望能够为他们提供某种模式的文档。

DataContract和XSD架构之间是否存在某种关系。 有没有办法将类中的DataContract属性导出为XSD架构?

Svcutil.exe可以“导出已编译数据协定的元数据” 。
DataContract和XSD之间存在关系:

当使用元数据端点或ServiceModel元数据实用工具(Svcutil.exe)从Windows Communication Foundation(WCF)服务导出元数据时,DataContractSerializer将CLR类型映射到XSD。 有关更多信息,请参阅数据协定序列化程序。

当Svcutil.exe用于访问Web服务描述语言(WSDL)或XSD文档并为服务或客户端生成数据协定时,DataContractSerializer还将XSD映射到CLR类型。

您也可以通过设置 MEX端点在运行时获取XSD,即使在浏览器中也是如此。
默认情况下,WSDL将包含对可通过端点访问的XSD的引用。

是的,您可以使用XsdDataContractExporter 。

MSDN文章从类中导出架构中提供了一个示例。

您可以使用Visual Studio附带的svcutil.exe工具从DataContracts生成模式文件。

svcutil myAssembly.dll - Generate metadata documents for Service Contracts and associated types in an assembly svcutil myServiceHost.exe /serviceName:myServiceName - Generate metadata documents for a service, and all associated Service Contracts and data types in an assembly svcutil myServiceHost.exe /dconly - Generate metadata documents for data types in an assembly 

我相信我曾经在过去的某个时刻弄乱了这个,可能会也可能不会让它发挥作用。 另一种生成模式的简单方法是建立一个使用数据契约的WCF服务,并访问WSDL。 WSDL将导入DataContracts的所有xsds。

上述就是C#学习教程:有没有办法从DataContract导出XSD架构分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1016805.html

(0)
上一篇 2021年12月31日
下一篇 2021年12月31日

精彩推荐