0

.net の WCF プロジェクトとして、C# 言語で記述されたサービスを呼び出そうとしています。ホストの IP は時々刻々と変化します。クライアント アプリケーションをコンパイルせずに後で変更できるように、設計時にクライアントにサービス参照を追加せずにサービスを呼び出す必要があります。コード プロジェクトからこの記事を見つけましたが、クライアントを公開するときに、URL を変更するための構成ファイルがありません。クライアント アプリケーションを再コンパイルせずに、実行時に Web サービスの URL を変更する方法を教えてください。よろしくお願いします。

4

3 に答える 3

0

ここに作業コピーがあります。私にとっては正常に動作し、リストを返します

private List<MyClass> GetAllSiteDetailsJSON(string language)
{

   Uri address = 
        new Uri(@"http://weburlpath/MyService/MyService.svc/GetAllList/"
                                                               + language);
   HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
   request.Method = "GET";
   request.ContentType = "application/x-www-form-urlencoded";

   using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
   {
       StreamReader reader = new StreamReader(response.GetResponseStream());
       string jSon = reader.ReadToEnd();
       reader.Close();

       JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
       List<MyClass> result = jsSerializer.Deserialize<List<MyClass>>(jSon);
       return result;
   }
}

そして、ここにクラスがあります

public class MyClass
{
    public string ID { get; set; }
    public string Name { get; set; }       
    public List<Location> Locations { get; set; }
}

public class Location
{
    public string Region { get; set; }
    public string Country { get; set; }
}
于 2014-12-24T09:16:21.227 に答える
0

Grant が上で述べたように、サービス コントラクトが変更されない限り、アプリケーション自体を再コンパイルせずにエンドポイント アドレスを変更できます。

ソリューション エクスプローラーで App.config というファイルを確認します。(何らかの種類の Web アプリを作成している場合は、Web.config と呼ばれる場合があります。)

于 2013-06-28T04:36:58.027 に答える