2010-07-01 16 views

Respuesta

3

El compilador generado enumerable no tiene el atributo [Serializable] aplicado a él, por lo tanto, no, de fábrica no puede hacer esto.

Debe preguntarse, "¿Por qué estoy usando un rendimiento aquí, y qué significa una vez que este objeto se deserializa?"

Si es conveniente, puede usarlo para completar un tipo que se puede serializar. Si lo usa para realizar trabajos pesados ​​de manera perezosa, es posible que desee considerar cambiar su diseño para serializar/deserializar la información que necesita para realizar ese trabajo pesado.

+2

esto no es del todo correcto. Solía ​​pensar que tampoco podías, pero en realidad puedes usar sustitutos para la serialización con un efecto interesante al mismo tiempo que conservas un código bastante genérico. Consulte el código de ejemplo en: http://dotnet.agilekiwi.com/blog/2007/05/implementing-workflow-with-persistent.html –

0

Simplemente itere el enumerador y serialice cada instancia devuelta.

3

¿Qué clase está utilizando para implementar IEnumerable<T>? List<T> debe serializar OK.

Intente llamar al ToList() en su colección antes de serializarlo.

+0

+1 para una solución simple. – Tyrsius

Cuestiones relacionadas