gpt4 book ai didi

wcf - 如何删除或排除 WCF 添加的未使用的架构?

转载 作者:行者123 更新时间:2023-12-04 08:50:08 24 4
gpt4 key购买 nike

我在 Visual Studio 中使用 WCF 创建了一个 Web 服务,当查看生成的 WSDL 时,它包含对 http://schemas.microsoft.com/2003/10/Serialization 的引用。其中包含很多类型规范。我不使用任何这些规范。有谁知道为什么 WCF 添加这个以及是否有任何方法可以摆脱它?

在我的服务上使用 singleWsdl 参数时,添加到我的 wsdl 的 xml 如下所示:

<xs:schema xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="anyType" nillable="true" type="xs:anyType" />
<xs:element name="anyURI" nillable="true" type="xs:anyURI" />
<xs:element name="base64Binary" nillable="true" type="xs:base64Binary" />
<xs:element name="boolean" nillable="true" type="xs:boolean" />
<xs:element name="byte" nillable="true" type="xs:byte" />
<xs:element name="dateTime" nillable="true" type="xs:dateTime" />
<xs:element name="decimal" nillable="true" type="xs:decimal" />
<xs:element name="double" nillable="true" type="xs:double" />
<xs:element name="float" nillable="true" type="xs:float" />
<xs:element name="int" nillable="true" type="xs:int" />
<xs:element name="long" nillable="true" type="xs:long" />
<xs:element name="QName" nillable="true" type="xs:QName" />
<xs:element name="short" nillable="true" type="xs:short" />
<xs:element name="string" nillable="true" type="xs:string" />
<xs:element name="unsignedByte" nillable="true" type="xs:unsignedByte" />
<xs:element name="unsignedInt" nillable="true" type="xs:unsignedInt" />
<xs:element name="unsignedLong" nillable="true" type="xs:unsignedLong" />
<xs:element name="unsignedShort" nillable="true" type="xs:unsignedShort" />
<xs:element name="char" nillable="true" type="tns:char" />
<xs:simpleType name="char">
<xs:restriction base="xs:int" />
</xs:simpleType>
<xs:element name="duration" nillable="true" type="tns:duration" />
<xs:simpleType name="duration">
<xs:restriction base="xs:duration">
<xs:pattern value="\-?P(\d*D)?(T(\d*H)?(\d*M)?(\d*(\.\d*)?S)?)?" />
<xs:minInclusive value="-P10675199DT2H48M5.4775808S" />
<xs:maxInclusive value="P10675199DT2H48M5.4775807S" />
</xs:restriction>
</xs:simpleType>
<xs:element name="guid" nillable="true" type="tns:guid" />
<xs:simpleType name="guid">
<xs:restriction base="xs:string">
<xs:pattern value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}" />
</xs:restriction>
</xs:simpleType>
<xs:attribute name="FactoryType" type="xs:QName" />
<xs:attribute name="Id" type="xs:ID" />
<xs:attribute name="Ref" type="xs:IDREF" />
</xs:schema>

最佳答案

也许现在为时已晚,但我遇到了这个问题并且能够解决它。我想删除它的原因是因为我在 Java 和 RPG 中生成客户端,以及 wsdl2javawsdl2rpg工具基于该模式生成大而丑陋的数据结构。

就我而言,这是因为我使用了 DataContract序列化程序,而我正在序列化的一些对象的类型成员没有 [DataContract]属性。为了使额外的模式消失,一切都被序列化,一直到类型树需要具有该属性。

每当服务契约(Contract)上有一个继承的公共(public)成员时,它也会出现这个问题。

关于wcf - 如何删除或排除 WCF 添加的未使用的架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10299217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com