减少wcf字典类型的xml标记

| 我正在开发一种WCF方法,该方法返回对象数据,包括Dictionary属性。 XML包含大量标记,我想知道是否有减少标记的方法。 下面是字典的当前XML输出的示例:
<gases>
 <a:KeyValueOfstringfloat>
  <a:Key>CH4</a:Key> 
  <a:Value>40</a:Value> 
 </a:KeyValueOfstringfloat>
 <a:KeyValueOfstringfloat>
  <a:Key>CO2</a:Key> 
  <a:Value>60</a:Value> 
 </a:KeyValueOfstringfloat>
</gases>
对于添加到集合中的每个其他气体元素,都会添加一个额外的“ 1”及其内容。是否可以按照以下方式自定义格式:
<gases>
 <key>value</key>
</gases>
提前致谢。
已邀请:
有两个选项,但两个选项都涉及不为您的集合使用.NET字典类型。给定所需的输出,请查看该问题的可接受答案。 否则,如果需要简单的XML,则需要使用简单的类结构。定义一个气体类,其中包含一个名为key的属性,该属性是一个字符串数组。我很确定生成的soap XML可能看起来像您显示的那样。 在这两种情况下,可能都不是您真正想要的。我猜想XML中的键元素对于每个键/值对都需要不同,但是您应该能够设计类来处理此问题(例如,创建具有名称和值字符串属性的项目类)。如果您想将气体类用作字典,则需要编写代码来完成。 更新:这是一个如何可配置CollectionDataContract属性的示例:
[CollectionDataContract(
    Name = \"Cities\",
    ItemName = \"city\",
    KeyName = \"cityName\",
    ValueName = \"population\")]
public class CityList
    : IDictionary<string, int>,
      IEnumerable<System.Collections.Generic.KeyValuePair<string, int>>
{
/// snipped
}
也许不是您要找的东西,但是通过有线方式GZiping消息将有很大帮助

要回复问题请先登录注册