我的ASMX SOAP服务具有以下结构:
[DataContract]
[KnownType(typeof(B))]
public class A : somethingElse
{
// somethingElse provides some internal-use-only properties
[DataMember] public string MemberA { get; set; }
}
[DataContract]
public class B : A
{
[DataMember] public string MemberB { get; set; }
}
当我发布服务时,WSDL最终看起来像这样:
<s:complexType name="A">
<s:complexContent mixed="false">
<s:extension base="tns:B">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="MemberA" type="s:string" />
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
...
<s:complexType name="B">
<s:complexContent mixed="false">
<s:extension base="tns:somethingElse">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MemberB" type="s:string" />
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
如果第二个块(B
)直接包含A
的属性,对我来说非常有用,
<s:complexType name="B">
<s:complexContent mixed="false">
<s:extension base="tns:somethingElse">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MemberA" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="MemberB" type="s:string" />
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
可以做到吗?