Pregunta

¿Alguien podría decirme cómo puedo convertir el byte [] a ArrayList usando C # en Windows Mobile?

Edición posterior:

  1. esto sería como tener una ArrayList que contiene instancias de un tipo personalizado. Esta lista va a una base de datos (en un blob) como una matriz de bytes (la conversión se realiza mediante la API de la base de datos); Lo que quiero es revertir el byte [] a ArrayList;

  2. .NET CF no proporciona el BinaryFormatter;

¿Fue útil?

Solución

Todos los arreglos heredan de ICollection, por lo que puede usar

ArrayList list = new ArrayList(bytearray);

aunque usaría la lista genérica < byte > yo mismo usando el mismo método, ya que eso evita el encajonamiento de cada valor de byte en la matriz. Aunque las matrices no heredan estáticamente de la IList genérica para el tipo respectivo, el CLR agrega implementaciones relevantes a cada instancia de matriz en tiempo de ejecución (consulte la Nota importante aquí )

Otros consejos

¿No puedes simplemente hacer esto?

ArrayList list = new ArrayList(byteArray);

ArrayList no tiene tipo, y solo debe usarse por compatibilidad.

Le sugiero que use una Lista < byte > ;:

var list = new List<byte>(byteArray);

Editar: si la API de la base de datos realiza la conversión, ¿no debería proporcionar una forma de deserializar? Intente usar Reflector para descubrir cómo se realiza la conversión.

Parece que el CF no es compatible con el BinaryFormatter. ¿Controlas el componente que envía esos datos binarios? ¿No puedes transformar los datos a Xml en ese componente? Si no, eche un vistazo al Formateador compacto

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top