5

Web服务位于:http: //api.bing.net/search.wsdl

在 VS2010 的项目中,我单击“添加服务引用”。作为“集合类型”,我指定“ System.Collections.Generic.List ”(或该列表中的任何其他内容,但不是数组)。单击确定 - 它将生成代码。

实际结果

代码包含数组而不是列表:

[System.Xml.Serialization.XmlArrayAttribute(Order=10)]
public SourceType[] Sources {
    get {
        return this.sourcesField;
    }
    set {
        this.sourcesField = value;
        this.RaisePropertyChanged("Sources");
    }
}

预期结果

代码应包含所有集合的列表。

问题

在 Web 服务文件夹中生成了许多影响实际代码生成的文件:Reference.svcmap、*.svcinfo、*.wsdl 本身。

如何强制 Wsdl2code 生成器(使用上面提到的这些文件)为此 Web 服务生成列表?

Reference.svcmap 包含使用列表的行,但它没有帮助:

<CollectionMappings>
  <CollectionMapping TypeName="System.Collections.Generic.List`1" Category="List" />
</CollectionMappings>
<GenerateSerializableTypes>true</GenerateSerializableTypes>
<Serializer>Auto</Serializer>
<UseSerializerForFaults>true</UseSerializerForFaults>
<ReferenceAllAssemblies>true</ReferenceAllAssemblies>
<ReferencedAssemblies />
<ReferencedDataContractTypes />
<ServiceContractMappings />

此处提出了类似的问题-但其最佳答案对这种情况没有帮助。

4

0 回答 0