2

Web サービスを呼び出す vsto アプリケーションを作成しました。すべて正常に動作しているようですが、本番サービスのテスト サービス バージョンを呼び出す機能を拡張したいと考えています。私のテストサービスを呼び出すコードスニペット。

  //how do i change here to be dynamic?
 npfunctions.finfunctions service = new npfunctions.finfunctions();
            var Results = service.ValidateFoapal(index.ToArray(), fund.ToArray(), org.ToArray(), prog.ToArray(), acct.ToArray(), row.ToArray());

            /* if their are no error then return a "Y" for success.*/
            if (Results.Count() < 0) { return LocallErrorInd; }
            /*well we have encountered errors lets adjust the spreadsheet to notify the user.*/

            else{
                //REMOVE ANY VISUAL ERRORS
                Microsoft.Office.Interop.Excel.Range delRng = Globals.ThisAddIn.Application.Range["R:S"];
                delRng.Delete(XlDeleteShiftDirection.xlShiftToLeft);
                for (int i = 0; i < Results.Count(); i++)
                {//set the error indicator 
                     LocallErrorInd = "Y";

                    //account error:
                    if (Results[i].FVALJOR_FUND_WARNING == "Y") 
                       {
                           Microsoft.Office.Interop.Excel.Range WrkRng = Globals.ThisAddIn.Application.Range[Results[i].FVALJOR_ROW];
                           WrkRng.Offset[0, 17].Value2 = "Invalid Account"; 
                        }

この投稿を見たことがあります。How can I dynamic switch web service addresses in .NET without a recompile? ただし、構成ファイルを変更する必要があります。サービス変数を変数に基づいて別の場所を指すように変更し、基本的にコマンドで本番からテストに 切り替えたいと思います。私が今見ているように、コードを複製する必要があるように見えますが、もっと良い方法があるはずです。のようなものであることが好きです。

if (TestBtn.Checked == true)
            {
                npfunctions.finfunctions service = new npfunctions.finfunctions();
               Results = service.ValidateFoapal(index.ToArray(), fund.ToArray(), org.ToArray(), prog.ToArray(), acct.ToArray(), row.ToArray());

            }

            if (PrdBtn.Checked == true)
            {
                  prdFunctions.finfunctions service = new prdFunctions.finfunctions();
                 Results = service.ValidateFoapal(index.ToArray(), fund.ToArray(), org.ToArray(), prog.ToArray(), acct.ToArray(), row.ToArray());

            }

            /* if their are no error then return a "Y" for success.*/
            if (Results.Count() < 0) { return LocallErrorInd; }
4

2 に答える 2

0

テスト クライアントには、dev または tst を選択するためのドロップダウンがあります。プロキシまたは net.tcp を選択するボタンもあります。(さまざまな方法でサービスを利用しているさまざまな人がいます)。

app.config では、エンドポイントの名前がさまざまな選択可能なオプションと関連付けられています。例えば。name="BasicHttpBinding_IInterface_PROXY_DEV"

次に、使用するエンドポイントを動的に構築して、それを使用できます。

于 2013-08-13T12:10:20.963 に答える