カスタム言語から WCF サービスを生成するサード パーティのフレームワークを使用しています。ただし、コレクション クラスを使用する場合は、次のような出力が生成されます。
namespace MyNameSpace
{
using System;
using System.ServiceModel;
[MessageContract]
public class FindSomethingResponse
{
[MessageBodyMember(Order=1)]
public System.Collections.Generic.List<SomethingDC> response;
}
}
これは問題ありませんが、サービスを利用するときに望ましくない結果を引き起こします。これは、上記が生成する XSD です。
<FindSomethingResponse>
<ArrayOfSomethingDC>
<SomethingDC/>
<SomethingDC/>
<SomethingDC/>
...
</ArrayOfSomethingDC>
</FindSomethingResponse
「グループ ノード」は ArrayOfSomethingDC と呼ばれますが、もっと意味のある名前 (「Somethings」など) を使用したいと思います。
私が見つけた限りでは、 CollectionDataContract 属性を使用してノードに名前を付ける必要があります。ただし、生成されたクラスの構造を実際に変更することはできません(サードパーティのフレームワークで行われるため)が、上記のメソッドのみを編集できます。
どんな方法でも可能ですか?