我需要通过WebService上传数据到SAP,使用C# 4.0(VS2010)中的WCF。我已经能够使用Web服务成功地连接和发布数据到,但是我遇到了日期和时间的问题。
我有一个叫MtrRdngDocERPRsltCrteReqRslt
的类,它有两个字段,分别叫ActualMeterReadingDate
和ActualMeterReadingTime
。当Visual Studio生成代理类时,它将这些对象转换为日期时间对象,但我知道它们是Web服务另一端的Date和Time(用JAVA实现)。
问题是,当我将日期时间值传递给这些字段时,它们不会被序列化,并且不会在另一端被接收。
还要注意的是,当我序列化由webservice定义为DateTime
的日期时,这些日期可以完美地工作。
我还使用了下面的代码来序列化整个对象,并将其保存为本地的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);
}
}
字符串
1条答案
按热度按时间w8ntj3qf1#
不久前,我在这方面遇到了一些麻烦,我决定使用长属性,因为这是实现长属性最接近的通用互操作方式,因为C#的DateTime和Java的Date对象在不同的语言中是不同的。