1

C# クライアント アプリケーションがあり、同じ関数 (同じ名前、同じパラメーター、およびデータ型) を公開する外部 webMethods 環境でホストされている 2 つの SOAP Web サービスを使用する必要があります。

Web サービス 1 - ManualLoadProduction

関数 1 - LoadMontlyData(string Month)

関数 2 - LoadYearlyData(文字列年)

Web サービス 2 - ManualLoadConsumption

関数 1 - LoadMontlyData(string Month)

関数 2 - LoadYearlyData(文字列年)

C# ソリューションに両方の Web サービスの Web 参照を追加しました。関数を個別に呼び出すことはできますが、階層化されたソリューションを構築する必要があります。ソリューションをどのように設計/実装する必要がありますか

4

1 に答える 1

4

アプリケーション全体で使用できるインターフェースがあります。これにより、消費するコードを特定の実装ではなくコントラクトに依存させることができます。

public interface IServiceWrapper{

    Data  LoadMontlyData(string Month);
    Data LoadYearlyData(string Year);
}

これは、ManualLoadProductionラッパーの1つの実装です。サービスメソッドをラップすると、追加の検証やオブジェクトマッピングなど、サービス呼び出しの周りに他の機能をラップできます。

public class ManualLoadProductionWrapper: IServiceWrapper{

      public Data LoadMontlyData(string Month){
         //implementation calls service method
      }

       public Data LoadYearlyData(string Year){
         //implementation calls service method
      }
}

public class ManualLoadConsumption: IServiceWrapper{

      public Data LoadMontlyData(string Month){
        //implementation calls service method
      }

      public Data LoadYearlyData(string Year){
       //implementation calls service method
      }
}
于 2013-02-13T12:42:43.120 に答える