Tengo una clase pública que no se serializará correctamente. Cuando se intenta, se lanza la siguiente excepción:Tipo no es serializable porque no es público?
El tipo de contrato de datos 'MyProject.MyClass' no es serializable porque no es público. Hacer que el tipo sea público solucionará este error. Alternativamente, puede hacerlo interno y usar el atributo InternalsVisibleToAttribute en su ensamblaje para permitir la serialización de miembros internos; consulte la documentación para obtener más detalles. Tenga en cuenta que hacerlo tiene ciertas implicaciones de seguridad.
Mi clase es pública, sin embargo:
[DataContract]
public class MyClass
{
[DataMember]
public string Name { get; set; }
[DataMember]
private int Count;
public MyClass()
{
Name = string.Empty;
Count = 0;
}
}
¿Por qué recibo esta excepción cuando la clase es claramente pública?