2016-08-18 6 views
0

Je travaille actuellement sur un petit projet où je modifie un fichier binaire. Par conséquent, je veux utiliser l'interface IConvertible, car je ne peux pas créer un Getter et un Setter pour chaque type.
Actuellement, je travaille sur le Setter qui doit convertir l'objet IConvertible en bytearray.C#: Get Bytearray de IConvertible

Le Setter ressemble actuellement à ceci:
public void SetValue(UInt32 Offset, IConvertible Value) { }

Quelqu'un sait-il un moyen pour obtenir un bytearray de l'objet IConvertible, puisque BitConverter ne propose pas de manière native de le faire.

Répondre

2

IConvertible n'est pas prévu pour ce scénario, comme reflété par les méthodes primaires de IConvertible (ToString, ToUInt64, etc.). Il est un ToType auxiliaire qui pourrait travail, mais la plupart des types ne prennent pas en chargeToType avec byte[] (pour conversionType). Si elle l'a fait, cela fonctionnerait:

var blob = Convert.ChangeType(obj, typeof(byte[])); 

Cependant, cela est pas quelque chose que vous devez faire, et ce n'est pas l'usage prévu. Franchement, vos détails de sérialisation devraient normalement exister séparément à les objets.

+0

Très bien, merci pour votre réponse. Je vais modifier mon code pour utiliser une méthode différente. Merci de me l'avoir fait remarquer. :) – imthe666st