5

VS 2010 では、コードが WCF クライアント プロキシ クラス Reference.cs を生成するサービス参照を作成しています。Mock で使用できるように、このクラスのメソッドに Virtual 修飾子が必要です。

もちろん、生成されたコードを手動で編集することはできますが、参照を更新するたびにコードが再生成され、変更が消去されます。

WCF クライアント プロキシ クラスの生成方法をより詳細に制御できますか? コード ジェネレーターに常に Virtual 修飾子を追加させる方法はありますか? 他の開発者が参照を更新する必要があるときに、生成されたコードを手動で編集して仮想修飾子を追加することを知ったり覚えたりする必要がないように、これをより自動化してほしいと思います。

4

1 に答える 1

8

別の方法は、インターフェイスを作成することです。プロキシ クラスはpartialとして生成されます。つまり、そのクラスの別の部分ファイルを作成し、実際の実装が生成されたクラスにある場合でも、クラスがインターフェイスを実装するように指定できます。次に、インターフェイスをモックし、プロキシを心ゆくまで再生成できます。

たとえば、生成されたクラスは次のようになります。

public partial class SomeService
{
    public string GetSomething()
    {
        return ... 
    }
}

このためのインターフェイスを作成できます。

public interface ISomeService
{
    string GetSomething();
}

次に、生成されたクラスの空の部分ファイルを追加します。

public partial class SomeService : ISomeService
{
}
于 2012-11-05T15:39:59.703 に答える