我有包含复杂类型的消息合约。在DataContract类中填充数据后,我将datacontract的对象传递给消息契约构造函数。数据合同有多种复杂类型。我想重命名响应xml元素。因为,它是一个复杂的类型,我能够重命名合同类名称。当我尝试重命名它的属性时,会在类名标记之外创建一个标记。
[MessageContract]
public class GetDetailsFromCardNumberResponse
{
[MessageBodyMember]
public GetDetailsFromCardNumberResponseBody Body { get; set; }
[MessageBodyMember(Name = "PatronAccountCardValidation")]
public PatronAccountCardValidation PatronValidation { get; set; }
public GetDetailsFromCardNumberResponse() { }
public GetDetailsFromCardNumberResponse(GetDetailsFromCardNumberResponseBody body)
{
PatronValidation = body.GetDetailsFromCardNumberResult;
}
}
在上面的PatronAccountCardValidation是复杂的类型。在我试图分配给它的属性的构造函数中。但它不属于基本要素,如下所示
<PatronAccountCardValidation >
</PatronAccountCardValidation >
<PatronId></Patron>
我发现了为什么会这样。但不知道如何解决。请建议
答案 0 :(得分:0)
尝试添加XmlAttributes来控制xml序列化:
[XmlRoot(ElementName = "YourCustomClassName")]
public class GetDetailsFromCardNumberResponse
{
[XmlElement(ElementName = "YourCustomAttibuteName")]
public PatronAccountCardValidation PatronValidation { get; set; }
}
希望有所帮助