私が持っているこのような状況があります
- WCF サービス (VS2008) どこかでホスト
- この WCF サービスへのサービス参照を持つ「クラス ライブラリ」タイプのコンシューマー プロジェクトを持つメイン ソリューション (VS2005)
データ契約には、次のようなデータメンバーがあります...
[DataContract] public class Cmd { [DataMember] public string CommandText; [DataMember] public CommandType CommandType; }
プロキシ service.cs は、消費者プロジェクトのサービス参照フォルダーに生成されます (vs 2005 を使用しているためである可能性があります)。これには、enum CommandType が新しい定義を取得したサービスのすべての宣言が含まれています。
[System.CodeDom.Compiler.GeneratedCodeAttribute("svcutil", "3.0.4506.30")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.datacontract.org/2004/07/System.Data")]
public enum CommandType
{
Text,
StoredProcedure,
TableDirect,
}
System.Data からのこの元の列挙型の代わりに
public enum CommandType
{
Text = 1,
StoredProcedure = 4,
TableDirect = 512,
}
これにより、クライアントからサーバーへの CommandType 値の誤った割り当てが発生します。
- これを克服するために何をすべきか。
- WCF サービスでこの CommandType 列挙型をオーバーライドして、全体で同じ列挙型定義を取得できますか。
問題文が長くてすみません…