Visual studio 对每个用户使用不同URL的Web服务引用

Visual studio 对每个用户使用不同URL的Web服务引用,visual-studio,Visual Studio,我正在VisualStudio中创建一个使用web引用的应用程序。参考的URL为: 以下是我如何在代码中使用它: DefectsService.Defect defect = new DefectsService.Defect(); defect.Name = mo.DefectName; defect.DateFound = DateTime.Now; noDefect = new DefectsService.DefectHandler().AddDefect(mo.Guid, defec

我正在VisualStudio中创建一个使用web引用的应用程序。参考的URL为:

以下是我如何在代码中使用它:

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的地方是app.config文件。但是,如果我转到“显示所有文件”,会出现更多带有URL的文件,如configuration.svcinfo、References.cs等。因此,我有一个问题:

在我的解决方案中,我在URL中添加了带有我的姓名的服务。如果我这样离开它(添加的服务),当用户输入他的URL时,我只更改app.config文件,上面的代码是否会像用于他的服务而不是我的服务一样工作?或者没有,因为在我添加服务时,该服务已经有了我的URL

更新

以下是我根据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
    }
}

如果我理解正确,在客户端更改服务URL非常容易:

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

(假设您的代理继承自
SoapHttpClientProtocol

defectsservice.website.com/nameSurname,这样做会容易得多…@TonyHopkinson该服务不是我的,所以我无法更改。啊,对不起,到此为止。这应该会有所帮助。@TonyHopkinson我听不懂您的意思。这是否意味着您的第一条评论不是针对我的问题on?是的,这意味着我误解了你的问题。你怎么说我的代理继承自SoapHttpClientProtocol。如何使其继承自SoapHttpClientProtocol?我更新了问题,这是你想的吗?这会起作用吗?我是说
DefectsService.Defect
类。它是你服务的代理吗?如果是,它可能已经在heri中了由于缺陷没有名为Url的属性,我想说它不是从SoapHttpClientProtocol继承的。还有其他方法吗?你能看到这个链接吗: