2012-01-22 21 views
0

Web参照を使用するVisual Studioでアプリケーションを作成しています。参照のためのURLは次のとおりです。ここでユーザーごとに異なるURLのWebサービス参照

https://nameSurname.website.com/defectsservice.asmx

は、私は私のコードでそれを使用する方法である:

DefectsService.Defect defect = new DefectsService.Defect(); 
defect.Name = mo.DefectName; 
defect.DateFound = DateTime.Now; 
noDefect = new DefectsService.DefectHandler().AddDefect(mo.Guid, defect); 
//DefectsService is the name of the service which I give when I add the reference 

私はこのようなアプリケーションにする必要があります。ユーザーは自分のURLを入力して、彼のだろうサービスが使用されます。私が見てきたように、ソリューションにURLが書かれている唯一の場所はapp.configファイルです。しかし、「すべてのファイルを表示」に行くと、configuration.svcinfo、References.csなどのようなURLのファイルがさらに表示されるので、質問があります。

私のソリューションでは、 URLの私の名前と姓。私はそれを残して(サービスが追加された)、ユーザーが自分のURLを入力したときにapp.configファイルのみを変更します。上記のコードは私のものではなく、彼のサービスのためのものでしょうか?それとも、サービスを追加したときに既にそのサービスがURLを持っていたからですか?ここで

UPDATE

はWiktor第Zychlaの提案後に私のコードです:

class Program : System.Web.Services.Protocols.SoapHttpClientProtocol 
{ 
    public Program() 
    { 
     this.Url = "";//url entered from every user 
    } 
    static void Main(string[] args) 
    { 
     DefectsService.Defect d = new DefectsService.Defect(); 
     defect.Name = mo.DefectName; 
     defect.DateFound = DateTime.Now; 
     noDefect = new DefectsService.DefectHandler().AddDefect(mo.Guid, defect); 
     //DefectsService is the name of the service which I give when I add the reference 
    } 
} 
+0

から継承すると仮定します。欠陥サービス.websi te.com/nameSurnameはもっと簡単に行うことができます... –

+0

@TonyHopkinsonサービスは私のものではないので、私はそれを変更することはできません。 –

+0

ああ、申し訳ありません。これは助けになるはずです。 http://stackoverflow.com/questions/473028/how-to-edit-application-configuration-settings-app-config-best-way-to-go –

答えて

0

私が正しく理解していれば、クライアント側でサービスのURLを変更することは非常に簡単です:

DefectsService.Defect defect = new DefectsService.Defect(); 
defect.Url = "theurlgoeshere"; 

(代理人がSoapHttpClientProtocol

+0

私のプロキシがSoapHttpClientProtocolから継承しているということはどうですか? SoapHttpClientProtocolから継承する方法 –

+0

質問を更新しました。これはあなたが気にしていたことですか?これは使えますか? –

+0

私は 'DefectsService.Defect'クラスを意味します。それはあなたのサービスのプロキシですか?もしそうなら、おそらく既にクラスから継承しているでしょう。 –

関連する問題