当我在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);