me gustaría poner en práctica algunas conductas serialzation complementarias que según este article. Si quieres ser elegante, puedes crear una configuración en las propiedades de tus proyectos. Esta configuración determinaría si su clase usó csv o serialización predeterminada. A continuación, tendrá acceso a través de las técnicas que se muestran here. Considere usar un constructor estático para leer las aplicaciones y hacer que un valor booleano sea accesible para su código de serialización. El código de Vlads se ve genial, solo conéctelo a su código. También puede considerar otras formas, quizás más deseables, de cambiar su comportamiento de serialización.
O crear una interfaz llamada 'SerializeAsCSV' y utilizarlo algo así como esto:
// contenido parcial de MyCoolClass.csv:
public class MyCoolClass : ISerializeAsCSV, IDisposable
{
protected static bool serializesToCSV = false;
static MyCoolClass()
{
serializesToCSV =
(typeof(MyCoolClass).GetInterface("GrooveySoft.Shared.Interfaces.ISerializeAsCSV") == null)
? false
: true;
}
public MyCoolClass(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
{
// your stuff here
}
public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
{
// your stuff here
}
}
// contenido de ISerializeAsCSV.cs
using System.Runtime.Serialization;
namespace GrooveySoft.Shared.Interfaces
{
/// <summary>
/// indicates that implementor will serialize to csv format
/// </summary>
public interface ISerializeAsCSV : ISerializable
{
}
}
Esto debería comenzar. . . No he compilado y probado esto. . pero entiendes la idea general.
¿Lo puede convertir? ¿Cuál intentaste? – Praveen