2010-07-15 71 views
2

我的客戶可以通過反射動態調用web服務。但是如何獲得有關webservice會話的cookie?我知道設置webmethodattribute enablesession是真實的,但在客戶端反射生成的web服務對象沒有cookiecontainer的屬性,如何使它保持會話狀態?如何在客戶端使用web服務保持會話?

回答

1

在您的Web服務方法上使用EnableSessionAttribute,這將使他們使用(並保留)會話對象,如解釋here at MSDN

+0

我知道在Web服務方法上使用EnableSessionAttribute。我的問題是如何保持會話在客戶端使用反射來動態調用webservice.thanks! – user392839 2010-07-15 17:10:40

+0

例如: 使用wsdl.exe生成引用webservice對象的客戶端。代碼如下所示: WebService ws = new localhost.WebService(); ws.CookieContainer = cookieContainer; //保留會話 lblName.Text = ws.GetName();使用反射代碼如下: object obj = activator.CreateInstance(t) System.Reflection.MethodInfo mi = t.GetMethod(methodname); 返回mi.Invoke(obj,args); //它不能保持會話與webservice.every調用將創建一個新的會話。 – user392839 2010-07-15 17:39:42

+0

@jollyray:在評論中粘貼的代碼幾乎不可讀(即使你使用強制性的代碼塊在這裏反引號),你可以將它添加到你的問題的可讀性嗎?最好是當前代碼的一個(部分)工作示例。 – Abel 2010-07-15 18:05:33