.net – 将Web引用添加到GACed的DLL

当我在SharePoint中编写事件处理程序时,我遇到了这个问题.我的事件处理程序有一个Web引用.当我创建此Web引用时,Web服务的URL将添加到程序集的.config文件中.如果我必须更改Web引用URL,我只需要更改配置文件中的链接.

当我尝试GAC dll时出现问题.当我GAC DLL,配置文件不能与DLL一起GAC,因此,我没有办法更新Web引用.

我找到的一个解决方法是修改构造函数方法Reference.cs类,当我添加引用时由visual studio自动生成,以便构造函数从其他某个位置读取Web服务URL,比如注册表或某些XML文件预定的位置.但这有时会出现问题,因为当我使用visual studio更新Web引用时,此Reference.cs文件会重新生成,并且我的所有修改都将丢失.

有没有更好的方法来解决这个问题?

最佳答案 如果您有Visual Studio 2008,请使用服务引用而不是Web引用,这将生成可用于覆盖功能的部分类,而不会使代码覆盖生成器.

对于Visual Studio 2005,您只需将partial关键字添加到Reference.cs中的类,并使用您自己的分部类保留单独的文件:

public partial class WebServiceReference
 { public WebServiceReference(ExampleConfigurationClass config) 
    { /* ... */
    }
 }

WebServiceReference svc = new WebServiceReference(myConfig);
点赞