C# doesn't define the endianness. In reality, yes it will probably always be little-endian (IIRC even on IA64, but I haven't checked), but you should ideally check BitConverter.IsLittleEndian
if endianness is important - or just use bit-shifting etc rather than direct memory access.
To quote a few lines from protobuf-net (a build not yet committed):
WriteInt64(*(long*)&value);
if (!BitConverter.IsLittleEndian)
{ // not fully tested, but this *should* work
Reverse(ioBuffer, ioIndex - 8, 8);
}
i.e. it checks the endianness and does a flip if necessary.