Vladimir Ozerov created IGNITE-1780:
---------------------------------------
Summary: .Net: DateTime is seialized incorrectly.
Key: IGNITE-1780
URL:
https://issues.apache.org/jira/browse/IGNITE-1780 Project: Ignite
Issue Type: Task
Components: interop
Affects Versions: ignite-1.4
Reporter: Vladimir Ozerov
Priority: Critical
Fix For: 1.5
Add the following test to PortableSelfTest.cs:
{code}
[Test]
public void TestWriteDate()
{
DateTime time = DateTime.Now;
DateTime timeUtc = DateTime.UtcNow;
Assert.AreEqual(_marsh.Unmarshal<DateTime>(_marsh.Marshal(time)), time);
Assert.AreEqual(_marsh.Unmarshal<DateTime>(_marsh.Marshal(timeUtc)), timeUtc);
}
{code}
Observe that it fails becuase we loose DateTimeKind.
DateTime must be serialized in portable form only in two cases:
1) IPortableWriter.WriteDate()
2) IPortableWriter.WriteDateArray()
In all other cases it should be serialized in some other form. E.g., we can introduce new wrapper type ".NET-specific" and wrap DateTime, Collections, Arrays (IGNITE-1779) in it.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)