Web サービスは次の場所にあります: http://api.bing.net/search.wsdl
VS2010 のプロジェクトで、[サービス参照の追加] をクリックします。「コレクションタイプ」として、「System.Collections.Generic.List」(またはそのリスト内の他のもの、ただし配列ではないもの)を指定します。[OK] をクリックすると、コードが生成されます。
実績:
コードには、リストではなく配列が含まれています。
[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 />
同様の質問がここで尋ねられましたが、その最良の回答はこの状況では役に立ちません。