2012-08-12 87 views
1

我有一个使用MonoTouch编写的应用程序,它依赖于Web服务URL后端。我需要能够在运行时从应用程序(或从它的设置中)动态地设置后端的URL。MonoTouch动态Web服务URL

我读过这篇文章在CodeProject上,描述动态设置URL: http://www.codeproject.com/Articles/12317/How-to-make-your-Web-Reference-proxy-URL-dynamic#_rating

但我不能找到MonoDevelop中这个选项。

我试过改变我的服务的Url属性,但它似乎有比它更多。 (具体来说,Web服务添加的“references.cs”文件似乎也有以各种属性硬编码的URL)。

任何帮助非常感谢。

谢谢!

--scotru

+0

P.S.我使用.NET 2.0风格的Web服务。 – scotru 2012-08-12 22:38:59

回答

1

当单生成C#包装为SOAP Web服务到你,它会创建2层构造的包装的。第二个包含URL参数,您可以使用它设置正确的URL并在Web服务之间切换。

从项目实施例,这是在生产(文件Reference.cs):

​​
+0

是的,但是当我在这里更改URL时,属性修饰器仍然会获得旧URL的完整URL路径,因此该服务无法正常工作。这是生成的属性给我带来麻烦。 – scotru 2012-09-03 07:01:02

+0

我重新检查了代码。如果你传递新的URL,服务包装应该使用它。 无论对旧url的引用是硬编码的(在reference.map和* .wsdl文件中)。 以下是构造函数的示例: if(AppSettings.DEBUG_SERVICE_MODE) client = new Service(AppSettings.DEBUG_URL); else { client = new Service(); – 2012-09-05 06:41:57