2013-10-26 3 views
1

저는 .net webservices에 익숙하며 그 중 일부 문제가 있습니다. wsdl.exe을 사용하여이 webservice 및 generete 프록시 클래스의 사양을 포함하는 wsdl 파일이 있습니다. 그런 다음이 클래스를 사용하여 일부 데이터를 보내면 여기에 문제가 있습니다. Proxy 클래스에 Null 허용 유형이 없습니다 (예 : DateTime). 그래서 나는 이런 식으로 뭔가를 할 수 없습니다 webservice를 통한 인수를 null로 전달합니다.

someDateField = null; 

그래서 나는 단지
someDateFieldSpecified = false; 

을하고 있어요 그리고 내가 생각처럼이 작동하지 않습니다. 나는 웹을 통해이 필드를 보내고 싶지 않다. 나는 magic mechanizm을 사용하여 그것을 프로그램 생성물과 함께 XML에 추가한다.

... 
<someDateField>1/1/0001 12:00:00 AM</someDateField> 
... 

이 필드를 보내지 않으려면 어떻게해야합니까? 나는 커스텀 시리얼 라이저를 작성하는 것에 대해 읽었지 만, 나의 지식 수준에서는 나에게 어려운 일이다.

+2

'DateTime'대신 'DateTime?'을 사용해 보셨습니까? –

+0

제대로 작동하지 않습니다. 잘못된 가정을했습니다. 프록시 클래스에서 뭔가를 바꾸면 계약에 문제가 생길 수 있습니다. – Bagietax

답변

0

DateTime은 Null 허용 유형이 아니므로 null을 값으로받을 수 없습니다. 그러나 DateTime? 또는 Nullable<DateTime>은 null을 허용 할 수 있으므로 문제를 해결해야합니다.

someDateFieldSpecified 속성을 false으로 설정하면 요청에서 someDateField 필드를 생략하지만 서버를 처리하는 방법은 서버가 결정합니다.

0

someDateFieldSpecified 속성을 false로 설정하면 요청에서 someDateField 필드가 생략되지만 서버를 처리하는 방법은 서버에 달려 있습니다.

관련 문제