我有我想添加额外属性的WSDL服务类。当我试图反序列化我的派生类时,它给出错误“您需要将XmlChoiceIdentifierAttribute添加到'ObjCreatePaperClipTransaction'成员。”使用XmlChoiceIdentifierAttribute序列化派生类成员
这是我在服务类上写的代码。 (executeCreatePaperClipTransaction
& CreatePaperClipTransactionType
是从代理对象类)
namespace MyProject.DTO
{
[XmlType("executeCreatePaperClipTransaction")]
public partial class CustomExecuteCreatePaperClipTransaction : executeCreatePaperClipTransaction
{
[XmlElement(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, Order = 0)]
[XmlElement("CreatePaperClipTransaction")]
public CustomCreatePaperClipTransactionType ObjCreatePaperClipTransaction { get; set; }
}
public partial class CustomCreatePaperClipTransactionType : CreatePaperClipTransactionType
{
[XmlElement(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, Order = 0)]
public executeCreateLoanIncrease ObjLoanIncreaseRequest { get; set; }
[XmlElement(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, Order = 1)]
public executeCreateFreeFormEventFeePayment ObjFreeFormEventFeePaymentRequest { get; set; }
}
}
当我删除[XmlElement("CreatePaperClipTransaction")]
线,其工作的罚款。但在seralized XML我想标签名称是CreatePaperClipTransaction
而不是ObjCreatePaperClipTransaction
我通过这个答案去了,但我不知道我怎么能在我的情况下实现https://stackoverflow.com/a/20379038/1169180
为什么你有两个'[XmlElement]'属性附加到'ObjCreatePaperClipTransaction'属性?你的问题是XML中可能有两个不同的元素名称,即和'',并且你想将它们绑定到ObjCreatePaperClipTransaction属性?此外,由于缺少基本类型,您的代码无法编译。你可以添加它们以及要反序列化的XML样本,因此将你的问题扩展到[mcve]? –
dbc