2009-12-02 8 views

Répondre

0

According to Jon Skeet, il est possible de simplement le convertir en un tableau d'octets.

+0

J'ai besoin castée pointeur dangereux. J'ai fait une solution de contournement. Passer int via la fonction. Je peux facilement convertir les octets * en int et int en octets *. Mais la question est toujours là. –

+0

@steven je postet jon skets code ci-dessus ;-) – streetparade

+0

Après que j'ai posté la source. – monksy

4

Que diriez-vous quelque chose comme ...

BinaryFormatter bf = new BinaryFormatter(); 
System.IO.MemoryStream ms = new System.IO.MemoryStream(1024); 

Object1 blah = new Object1("Hello"); 

bf.Serialize(ms, blah); 
byte[] bytes = ms.GetBuffer(); 
0

OK, j'ai trouvé la solution:

(byte*)(int)someObject 
+0

Que faire si someObject est plus grand qu'un int? – Jan

+0

Dans mon scénario, cela n'arrivera pas. Mais oui, vous avez raison. –

+2

Ne fonctionne pas en mode 64 bits. Un pointeur est plus grand qu'un int. –