2015-02-02 4 views
0
에서 무시됩니다

고객에서 WSDL 파일이 구문을 사용하여 시간 데이터 유형을 지정 : 나는 Visual Studio에서 "웹 참조"(안 서비스 참조)으로 WSDL 파일을 포함WSDL 시간 형식은 비주얼 스튜디오

<xsd:simpleType name="time"><xsd:restriction base="xsd:time"><xsd:pattern value="[0-9]{2}:[0-9]{2}:[0-9]{2}"/></xsd:restriction></xsd:simpleType> C# 프로젝트. 이 코드를 생성한다 :

[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="time")] 
public System.DateTime I_TIMETO { 
get { 
    return this.i_TIMETOField; 
} 
set { 
    this.i_TIMETOField = value; 
} 

}를

문제가 있음을 상기 생성 된 페이로드는 WSDL 파일로부터 패턴 ([0-9] {2} [0-9] {2} : [0-9] {2}), 완전하게 무시됩니다. 즉, Webservice를 변경할 수 없습니다 내가 자동 생성 된 코드를 변경하지 않으

<I_TIMETO xmlns="">17:11:00</I_TIMETO> 

:

<I_TIMETO xmlns="">17:11:00.0000000+01:00</I_TIMETO> 

대신 :처럼 페이로드는 보인다.

+0

전문가는 아니지만 WCF 서비스를 사용하고 있으며 방법이 없다고 생각합니다. DateTime에 서식을 저장하는 방법 내가하는 모든 일은 DateTime 변수를 전달하고 서비스 자체로 그 숫자를 계산합니다. Flipside에서 DateTime의 문자열 값을 전달하는 경우 클라이언트와 서버에 표준 형식 문자열이 있어야합니다. – stripathi

+0

슬프게도 SAP 웹 서버이므로 인터페이스를 변경할 수 없습니다. – user3244392

답변

0

저는 좋은 해결책이 없다고 생각합니다. 자동 생성 된 코드를 편집해야합니다.

자동차의 부분 클래스가 생성 된 코드를 생성하고 올바른 서식 문자열 속성을 추가 :

[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, 
DataType = "string", ElementName = "I_TIMETO")] 
public string I_TIMETO_STR 
{ 
    get 
    { 
     return this.i_TIMETOField.ToString("HH:mm:ss"); 
    } 
    set 
    { 
     this.i_TIMETOField = DateTime.ParseExact(value, "HH:mm:ss", CultureInfo.InvariantCulture); 
    } 
} 

지금 자동 생성 된 속성에 가서 XmlIgnore 추가

[System.Xml.Serialization.XmlIgnore] 
public System.DateTime I_TIMETO{...