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)

Reply via email to