0

従来の .net アセンブリ API (クラスとインターフェイスのセット) を WCF サービスでラップする必要があります。サービスは、実質的に追加作業なしで呼び出しを既存のクラスに委任するプロキシとして構想されています。

そこで[ServiceContract] interface、既存の構造体とクラスを処理するメソッドを公開することを追加しました。しかし、wcf-proxy-generator (svcutil) は一部のフィールドを削除し (読み取り専用として宣言)、エイリアスに対して十分にスマートではありません (たとえば、 public bool Boolean1 { get { return Booleans[0] }}に変わりますbool Boolean1 { get; set; })。

混乱を避けるために、このようなレガシー クラスを複製することにしました。現在、一部の既存のクラスにはコントラクト セーフ バージョンがあり、WCF サービスには、コントラクト セーフ クラスをレガシ クラスに変換したり、その逆を行ったりする追加のコードがあります。

すべてのレガシークラスを複製することをお勧めしますか、それとも問題のあるクラスのみを変換しても問題ありませんか? 私が見逃したいくつかの余分なプロキシジェネレータパラメータがあるかもしれません.

前もって感謝します!

4

1 に答える 1

1

プロキシは、オブジェクトをシリアル化する必要があり、セッターを呼び出してシリアル化された値をオブジェクトに戻すことができない限り、それを行うことができないため、読み取り専用プロパティが好きではありません。

レガシ クラスを WCF 対応に変更する方が簡単ですが、通常、それはオプションではありません。レガシー クラスから WCF セーフ クラスに変換するために作成したクラスは問題ないように見えますが、これらのクラスを WCF で使用するためだけに別のレイヤーを導入するため、明らかに理想的ではありません。

于 2010-07-15T16:00:58.933 に答える