C# 我有一个包含复杂类型的消息契约
我有一个包含复杂类型的消息契约。在DataContract类中填充数据之后,我将DataContract的对象传递给消息契约构造函数。数据协定有多种复杂类型。我想重命名响应xml元素。因为它是一种复杂类型,所以我可以重命名合同类名。当我尝试重命名它的属性时,会在类名标记之外创建一个标记C# 我有一个包含复杂类型的消息契约,c#,wcf,C#,Wcf,我有一个包含复杂类型的消息契约。在DataContract类中填充数据之后,我将DataContract的对象传递给消息契约构造函数。数据协定有多种复杂类型。我想重命名响应xml元素。因为它是一种复杂类型,所以我可以重命名合同类名。当我尝试重命名它的属性时,会在类名标记之外创建一个标记 [MessageContract] public class GetDetailsFromCardNumberResponse { [MessageBodyMember] public GetDe
[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;
}
}
在上面的示例中,AccountCardValidation是复杂类型。在构造函数中,我试图分配给它的属性。但它不属于基本元素,如下所示
<PatronAccountCardValidation >
</PatronAccountCardValidation >
<PatronId></Patron>
我已经找到了它发生的原因。但不知道如何解决。请建议尝试添加XmlAttributes以控制xml序列化:
[XmlRoot(ElementName = "YourCustomClassName")]
public class GetDetailsFromCardNumberResponse
{
[XmlElement(ElementName = "YourCustomAttibuteName")]
public PatronAccountCardValidation PatronValidation { get; set; }
}
希望它有助于尝试添加XmlAttributes以控制xml序列化:
[XmlRoot(ElementName = "YourCustomClassName")]
public class GetDetailsFromCardNumberResponse
{
[XmlElement(ElementName = "YourCustomAttibuteName")]
public PatronAccountCardValidation PatronValidation { get; set; }
}
希望能有所帮助您是否尝试过在您的GetDetails中添加[KnownType(typeof(PatronAccountCardValidation))]属性(来自CardNumberResponse?是的,并且对那些与其他类具有依赖关系/引用的类执行相同操作。您好,实际上我有一个复杂的类型。。。该类型应作为标题。属性应作为成员。您是否尝试在GetDetailsFromCardNumberResponse中添加[KnownType(typeof(PatronAccountCardValidation))]属性?是的,并且对那些具有其他类的依赖/引用的类执行相同操作。您好,实际上我有一个复杂的类型。。。该类型应作为标题。属性应作为成员。。