[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;
#endif
}
Nasty things would happen if the unmanaged code is profile agnostic.
Robert
More information about the Mono-devel-list
mailing list