2010-07-15 4 views
2

내 고객이 리플렉션을 통해 웹 서비스를 동적으로 호출 할 수 있습니다. 하지만 webservice 세션에 대한 쿠키를 얻는 방법은 무엇입니까? webmethodattribute enablesession이 true라는 것을 알고 있습니다 만, 리플렉션에 의해 생성 된 webservice 객체는 cookiecontainer의 속성을 가지고 있지 않습니다. 세션 상태를 유지하는 방법은 무엇입니까?클라이언트의 webservice와 세션을 어떻게 유지할 수 있습니까?

답변

1

웹 서비스 메소드에서 EnableSessionAttribute를 사용하면 세션 객체 (예 : here at MSDN)를 사용하고 유지하게됩니다.

+0

나는 웹 서비스 메서드에서 EnableSessionAttribute를 사용한다는 것을 알고 있습니다. 내 문제는 동적으로 webservice.thanks를 호출하는 리플렉션을 사용하여 클라이언트에서 세션을 유지하는 방법입니다! – user392839

+0

예 : wsdl.exe를 사용하여 client.the 코드에서 webservice 객체의 참조를 생성합니다. WebService ws = new localhost.WebService(); ws.CookieContainer = cookieContainer; // 세션 유지 lblName.Text = ws.GetName(); reflection.the 코드를 사용하면 다음과 같습니다. object obj = activator.CreateInstance (t); System.Reflection.MethodInfo mi = t.GetMethod (methodname); mi.Invoke (obj, args); // 웹 서비스를 사용하여 세션을 유지할 수 없습니다. 호출하면 새 세션이 만들어집니다. – user392839

+0

@jollyray : 주석에 붙여 넣은 코드는 거의 읽을 수 없습니다 (의무적 인 \ codet 블록 \ 여기서는 사용하지 않습니다). 읽기 쉽도록 질문에 추가 할 수 있습니까? 현재 코드의 (부분적으로) 작동하는 예제. – Abel

관련 문제