2012-11-05 4 views
5

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

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

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

答えて

8

代わりに、インターフェイスを作成することもできます。プロキシクラスはpartialとして生成されます。つまり、実際の実装が生成されたクラスに含まれていても、そのクラスに別の部分ファイルを作成してクラスを実装することができます。その後、インターフェースをモックして、あなたのハートのコンテンツにあなたのプロキシを再生成することができます。

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

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

あなたは、このためのインタフェースを作成することができます。

public interface ISomeService 
{ 
    string GetSomething(); 
} 

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

public partial class SomeService : ISomeService 
{ 
} 
関連する問題