Dada una clase como ésta:prueba para campo opcional al utilizar .NET personalizado serialización
[Serializable]
public class MyClass {
string name;
string address;
public MyClass(SerializationInfo info, StreamingContext context){
name = info.GetString("name");
if(/* todo: check if a value for address exists */)
address = info.GetString("address");
}
public void GetObjectData(SerializationInfo info, StreamingContext context){
info.AddValue(name);
if(address != null)
info.AddValue(address);
}
}
¿Cómo puedo comprobar si existe un valor para el campo antes de llamar address
info.GetString(address)
?
Sí, entiendo que simplemente podría escribir un campo address
nulo, pero mi problema real es que las versiones anteriores de MyClass
, no tenían un campo de dirección.
Nota: Tengo buenas razones para usar la serialización personalizada. Hay algunos campos estáticos que se utilizan como singleton y la deserialización predeterminada no respetará eso.