В моей службе 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>
Можно ли это сделать?