问题描述
我有一个XML响应作为wcf soap Web服务,例如波纹管:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<ws:getSubjectFieldsByNameResponse xmlns:ws="https://localhost:8443/ira/ws">
<return xmlns:ns2="https://localhost:8443/ira/ws">
<item>
<subjectDnField>DN_PKIX_COMMONNAME</subjectDnField>
<defaultValue/>
<isrequired>true</isrequired>
<isModifiable>true</isModifiable>
</item>
<item>
<subjectDnField>DN_PKIX_SERIALNUMBER</subjectDnField>
<defaultValue/>
<isrequired>true</isrequired>
<isModifiable>true</isModifiable>
</item>
</return>
</ws:getSubjectFieldsByNameResponse>
</env:Body>
</env:Envelope>
我使用以下响应类来解析此xml文件的正文:
[MessageContractAttribute(WrapperName = "getSubjectFieldsByNameResponse",WrapperNamespace = "https://localhost:8443/ira/ws",IsWrapped = true)]
public partial class getSubjectFieldsByNameResponse
{
[MessageBodyMemberAttribute(Namespace = "",Order = 0)]
[XmlArrayItemAttribute("return",Namespace = "",Form = XmlSchemaForm.Unqualified,IsNullable = false)]
public SubjectItem[] items;
public getSubjectFieldsByNameResponse()
{
}
public getSubjectFieldsByNameResponse(SubjectItem[] items)
{
this.items = items;
}
}
[XmlTypeAttribute]
public partial class SubjectItem
{
[XmlElementAttribute(Form = XmlSchemaForm.Unqualified,Order = 0)]
public string subjectDnField { get; set; }
[XmlElementAttribute(Form = XmlSchemaForm.Unqualified,Order = 1)]
public string defaultValue { get; set; }
[XmlElementAttribute(Form = XmlSchemaForm.Unqualified,Order=2)]
public string value { get; set; }
[XmlElementAttribute(Form = XmlSchemaForm.Unqualified,Order=3)]
public bool isrequired { get; set; }
[XmlElementAttribute(Form = XmlSchemaForm.Unqualified,Order=4)]
public bool isModifiable { get; set; }
}
但是最终结果始终是SubjectItem
的空数组,我尝试更改一些XML属性但没有运气。我应该在响应类中进行哪些更改才能获得预期的结果?