添加WEB引用,引入的WebService地址會直接寫入app.config設定檔,這樣一來,使用者可以用記事本開啟設定檔,輕鬆的查看或修改WebService地址.如何將引入的WEB引用地址,寫入自訂.cs檔案封裝起來,達到隱藏WebService地址的效果,還請賜教.
具體app.config中的引用配置入下
<applicationSettings>
<RedSpider.Properties.Settings>
<setting name="Services_Service" serializeAs="String">
<value>http://user.xxx.com/Ser.asmx </value>
</setting>
</RedSpider.Properties.Settings>
</applicationSettings>
C# code
using System.Configuration;using System.Xml;//讀取:(如果沒有在“方案總管”的“引用”裡添加"System.configuration"請右擊"引用"然後選擇“System.configuration”、“確定”) ImagePath.Text = ConfigurationManager.AppSettings["ImagePath"].ToString();//寫(調用的時候直接調用下面的函數就行了。) public static void SetValue(string AppKey,string AppValue) { //System.Configuration.ConfigurationSettings.AppSettings.Set(AppKey,AppValue); XmlDocument xDoc = new XmlDocument(); xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config"); XmlNode xNode; XmlElement xElem1; XmlElement xElem2; xNode = xDoc.SelectSingleNode("//appSettings"); xElem1 = (XmlElement)xNode.SelectSingleNode("//add[@key='" + AppKey + "']"); if ( xElem1 != null ) xElem1.SetAttribute("value",AppValue); else { xElem2 = xDoc.CreateElement("add"); xElem2.SetAttribute("key",AppKey); xElem2.SetAttribute("value",AppValue); xNode.AppendChild(xElem2); } xDoc.Save(System.Windows.Forms.Application.ExecutablePath + ".config"); }
或者你也可以將它加密後寫入註冊表。直接把地址固定死了寫在代理類裡就可以了,
你開啟的項目目錄,應該有一個Web referer之類的目錄,你點擊進去之後再點開你添加的WEB服務引用目錄,裡面就有一個referer.cs 是不是這麼拼字我記不得太清楚了,反正就一個CS
檔案,你把他開啟,你可以直接修改他的建構函式,裡面有一個關係URL的操作,你直接把寫死了URL賦值給this.URL就可以不用App.COnfig的檔案裡的配置了,其實,你可以把這個CS檔案直接複製到項目根目錄,改個名稱,添加到項目工程裡,關於Web服務引用的其它東西都是可以不要的,關鍵就是在那個cs就夠了
我都是直接用這個方法,直接只要這個cs檔案裡的類,然後訪問很多個和這個代理相同WDSL的WebServices,地址是根據參數去資料庫取,以達到根據不同的參數,可以向不同的WebService發送請求,