我需要使用c#4.0(VS2010)中的WCF通过Web服务将数据上传到SAP。我已经能够成功地使用webservice连接和发布数据,但是我遇到了日期和时间的问题。
我有一个名为MtrRdngDocERPRsltCrteReqRslt的类,它有两个名为ActualMeterReadingDate和ActualMeterReadingTime的字段。当Visual Studio生成代理类时,它将这些对象转换为datetime对象,但我知道它们是Web服务另一端的日期和时间(在JAVA中实现)。
问题在于,当我将datetime值传递给这些字段时,它们不会被序列化,也不会被另一端接收。
另请注意,当我序列化由Web服务定义为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);
}
}
答案 0 :(得分:1)
前段时间我遇到了一些麻烦,我决定使用长属性,因为它是实现它的最接近的通用互操作方式,因为c#的DateTime和java的Date对象是不同语言的不同东西。