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 />
此处提出了类似的问题-但其最佳答案对这种情况没有帮助。