[Mono-dev] Marshaling DateTime type

Robert Jordan robertj at gmx.net
Wed Oct 15 10:23:10 EDT 2008

Raja R Harinath wrote:
> Hi,
> Robert Jordan <robertj at gmx.net> writes:
>> FirstName LastName wrote:
>>> What would be the best equivalent unmanaged type (linux and windows)
>>> to use if I want to marshal a DateTime in the managed world (.NET,
>>> mono)?
>> You can't marshal DateTime directly because its internal representation
>> is different between runtimes *and* profiles. Use DateTime.Tick (an
>> int64) or a similar era-based representation.
> But, IIRC, strangely enough, arrays of DateTimes should serialize fine.
> So, you might be better of using a one-element DateTime array.

Look at DateTime's layout:

public struct DateTime
         private TimeSpan ticks;
#if NET_2_0
        	DateTimeKind kind;

Nasty things would happen if the unmanaged code is profile agnostic.


More information about the Mono-devel-list mailing list