que estoy haciendo algunos serialización de objetos LINQ db, que contienen clases EntitySet y EntityRef..NET, C#: ¿Cómo añadir un atributo de serialización personalizado que actúa como interfaz ISerializable
Encontré una manera bastante fácil de manejar la serialización de estas clases, simplemente usando ISerializable para manejar adecuadamente los miembros de este tipo (convirtiéndolos en listas para la serialización, y deshaciendo la deserialización).
Sin embargo, sería muy bueno si pudiera hacer:
[Serializable]
[SerializeLinqEntities]
partial class Person
{ ... }
En lugar de:
partial class Person : ISerializable
{
public virtual void GetObjectData(SerializationInfo si, StreamingContext ctxt)
{
EntitySerializer.Serialize(this, typeof(Person), si, ctxt);
}
protected Person(SerializationInfo si, StreamingContext ctxt)
{
EntitySerializer.Deerialize(this, typeof(Person), si, ctxt);
}
}
¿Hay una manera de hacer esto? Miré a través de las clases de serialización y no parecía encontrar ninguna forma de configurar las rutinas de filtro de serialización personalizadas (donde podía buscar mi atributo personalizado).
Gracias!
Parece que IClientFormatterSinkProvider y IServerFormatterSinkProvider me permitirá proporcionar una BinaryFormatter con mi conjunto SurrogateSelector personalizado. Gracias de nuevo, Sergey! – marq
Hmm ... así que, como resultado, Microsoft ha hecho esto mucho más difícil de lo que parece. Vea el siguiente enlace: http://www.123aspx.com/Rotor/RotorSrc.aspx?rot=40027 Los proveedores de sumidero, como resultado, son bastante complejos, y no es tan simple como simplemente implementar uno. Realmente deseo que habían proporcionado una mejor interfaz de API para interactuar con la serialización binaria ... – marq