1

誰かアドバイスをいただけないでしょうか。リポジトリ A とリポジトリ B の 2 つのリポジトリがあります。現在、これらのリポジトリは両方とも、Web サービスに接続するためのネットワーク資格情報をセットアップするために使用されるメソッドを持っていますが、Web サービスを呼び出すたびに、このメソッドを呼び出す必要があります。多くのコードの繰り返し (ネットワーク資格情報は各 Web サービスですべて同じです)。だから、これを行うためのより良い方法があることを願っていますか?

私が考えていたのは、他のすべてのリポジトリが継承する基本リポジトリを持つことです。これはインスタンス化され、ネットワーク資格情報を設定して、Web サービスに接続するときに使用できるようにします。これはこれを行う良い方法ですか、それともより良い方法がありますか?

追加するために、IOCとDIにUnityを使用しています(コントローラーで呼び出されます)

4

2 に答える 2

2

リポジトリが使用できるWebサービスの呼び出しを処理する別のクラスを用意できませんか? 例えば

public class WebServiceCaller : IWebServiceCaller
{
    private NetworkCredentials credentials { get; set; }

    public WebServiceCaller()
    {
        this.credentials = new NetworkCredentials("Name", "Password");
    }

    // .. Whatever else you need.
}

したがって、レポのコンストラクターには次のものが含まれます。

public RepoA(IWebServiceCaller caller)

このようにして、Web サービスの呼び出しと認証の責任は、リポジトリから完全に取り除かれます。

于 2013-06-20T09:23:05.880 に答える
0

DIコンテナも採用しているので、リポジトリパターンと作業単位を簡単に実装できるので、正しい軌道に乗っていると思います。

リポジトリと作業単位のパターン

于 2013-06-20T09:25:15.483 に答える