DataContact/DataMember 属性を使用して WCF サービスを公開すると、他のプロジェクトでこのサービスに対して行う各サービス参照によって、DataContract/DataMember 属性 (および IExtensibleDataObject インターフェイス実装など) を持つクラスが生成されます。
別のプロジェクトでは、WSDL が WCF によって生成されていない SOAP サービスを使用する必要がありますが、他のツールによっては不明であり、動作を変更することはできません。
私の問題は、svcutil プロキシによって生成されたコードの柔軟性が少し低いことです。
- クラスは、DataContract の代わりに Serializable 属性を使用します (GeneratedCode 属性は、System.Runtime.Serialization の代わりに System.Xml の使用を指定します)。
- IExtensibleDataObject が実装されていません
- OptionalField 属性は使用されません
- XmlElement の順序が固定されているため、新しい xs:element が wsdl xs:sequence の途中に挿入されると、逆シリアル化が失敗します...
この方法でコードを生成する必要がある svcutil ツール/私が使用する wsdl で何が起こったのですか?