Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用属性进行WCF对象序列化_C#_Wcf - Fatal编程技术网

C# 使用属性进行WCF对象序列化

C# 使用属性进行WCF对象序列化,c#,wcf,C#,Wcf,我对这东西不熟悉。我在C#中使用WCF。假设您有一个Web服务,它返回具有字段aa和bb的实体a 此实体可以使用以下方式表示: [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.ns.com")] public partial class A{ [System.Xml.Serialization.XmlAttributeAttribute()] public bool Aa; [Syste

我对这东西不熟悉。我在C#中使用WCF。假设您有一个Web服务,它返回具有字段aa和bb的实体a

此实体可以使用以下方式表示:

[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.ns.com")]
public partial class A{
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public bool Aa;  
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public bool Bb;
}
当我调用WS时,它会生成响应xml

<A>
   <Aa></Aa>
   <Bb><Bb>
</A>

我需要它生成如下输出:

<a aa="" bb=""/>


如何做到这一点?

WCF的默认行为是使用DataContractSerializer。这是一个序列化程序,用于为属性批注查找完全不同的属性集

您需要告诉WCF使用XmlSerializer而不是默认值。这里都是文档

尝试使用如下代码-
[xmldattribute(“aa”)]public bool aa谢谢。这很有效。我还有一个问题。我的服务返回一个响应对象EntityA。但是,在XML响应中,我看到EntityA是这样嵌套的:我想删除响应和结果Elements@DesiBoyzZWCF正在使用SOAP并将生成SOAP消息。您可能需要更深入地研究WCF。您还应该重新考虑控制消息层对您来说有多么重要。只要使用您的服务的系统能够对消息进行反序列化,XML的外观可能与此无关。我无法控制对消息进行反序列化的系统,并且现有系统在将消息包装在结果/响应元素中时无法理解该消息。但无论如何,我找到了一种方法,使用MessageContract并将IsWrapped属性设置为false。现在可以了。谢谢你的回答