2011-07-18 98 views
1

我需要上傳數據到SAP通過Web服務,使用WCF在C#4.0(VS2010)。我已經能夠連接並使用Web服務成功發佈數據,但是我遇到了日期和時間的問題。序列化c#日期時間到Java時間和Java日期SAP Web服務

我有一個叫做MtrRdngDocERPRsltCrteReqRslt的類,有兩個字段,分別叫ActualMeterReadingDate和ActualMeterReadingTime。當Visual Studio生成代理類時,它將這些對象轉換爲日期時間對象,但是我知道它們是web服務另一端(用JAVA實現)的日期和時間。

問題是,當我將datetime值傳遞給這些字段時,它們沒有被序列化,並且在另一端沒有被接收。

另外請注意,當我序列化由Web服務定義爲日期時間的日期,這些工作完美。

我也使用下面的代碼來序列化整個對象,並將其保存在xml本地,我也有同樣的問題。


public void SerializeToXML(MeterReadingUploadWS2.MtrRdngDocERPRsltBulkCrteReqMsg bb, string path) 
{ 
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(bb.GetType()); 

      var serializer = new System.Xml.Serialization.XmlSerializer(bb.GetType()); 

      using (var writer = System.Xml.XmlWriter.Create(path)) 
      {       
       serializer.Serialize(writer, bb); 
      } 
     } 
+0

當你將它序列化到xml時,你能向我們展示bb對象的樣子嗎? – Jethro

回答

1

我有一些麻煩這樣做,前一段時間,我決定與長期性的工作,因爲它是最接近通用互操作的方式來實現它,因爲C#的DateTime和Java的Date對象是不同的東西來自不同的語言。

+0

所以你的意思是你將日期轉換爲Long? –

+0

我們選擇更改web服務,以接受約定字符串格式的日期和時間。我認爲它是最簡單的。爲了避免將來出現這樣的問題,我將確保只有日期時間暴露在web服務中。 –

+0

是的,將其轉換爲長。這兩種方法(使用長或字符串)無論如何適合您的需求:) 您可以標記答案爲接受? – everton