ASP.NET - Serializar Herencia de Clases

 
Vista:

Serializar Herencia de Clases

Publicado por Mauro Gonzalez (2 intervenciones) el 16/02/2021 16:20:52
Hola Saludos Agradecería, toda la ayuda que me puedan brindar


Requiero enviar en el request a un WS los datos con las siguientes Clases:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class DfSaveSale
{
    public string DocumentType { get; set; }
    public string ExternalDocumentID { get; set; }
    public EmissionDate EmissionDate { get; set; }
    public string ClientFile { get; set; }
    public string ContactIndex { get; set; }
    public string PaymentCondition { get; set; }
}
 
public class EmissionDate: DfSaveSale
{
    public string Day { get; set; }
    public string Month { get; set; }
    public string Year { get; set; }
}


En el cuerpo principal tengo:

1
2
3
4
5
6
7
8
9
10
11
DfSaveSale oDfSaveSale = new DfSaveSale();
oDfSaveSale.DocumentType = "4454520";
oDfSaveSale.ExternalDocumentID = "4455121";
oDfSaveSale.EmissionDate.Day = "01";
oDfSaveSale.EmissionDate.Month = "02";
oDfSaveSale.EmissionDate.Year = "15";
oDfSaveSale.ClientFile = "4525612";
oDfSaveSale.ContactIndex = "45125";
oDfSaveSale.PaymentCondition = "CONTADO";
string Serial = Newtonsoft.Json.JsonConvert.SerializeObject(oDfSaveSale);
MessageBox.Show(Serial.ToString());

Pero me da error en la siguiente Linea:
1
oDfSaveSale.EmissionDate.Day = "01";

Indicándome:

{"Referencia a objeto no establecida como instancia de un objeto."}

Me podrían ayudar como instanciar el objeto antes de serializar.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 165
Oro
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Serializar Herencia de Clases

Publicado por Miguel (72 intervenciones) el 16/02/2021 16:59:46
de tu clase
EmissionDate: DfSaveSale

elimina DfSaveSale


y deja como
EmissionDate

porque estas causando una referencia ciclica.

1
2
3
4
vpublic class DfSaveSale
{
 
public EmissionDate EmissionDate { get; set; }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Serializar Herencia de Clases

Publicado por Mauro Gonzalez (2 intervenciones) el 16/02/2021 19:10:47
Gracias, tienes razón. Pero fue que me quedo esa linea de instrucción. Pero al quitarla me sigue dando el mismo error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 165
Oro
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Serializar Herencia de Clases

Publicado por Miguel (72 intervenciones) el 16/02/2021 23:28:29
Modifica tu clase para que tu propiedad EmissionDate ya este definida, instancia en el constructor
de esta manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
public class DfSaveSale
{
  public DfSaveSale()
{
   this.EmissionDate  = new EmissionDate (); // asi ya no sera un objeto nulo esta propiedad
}
    public string DocumentType { get; set; }
    public string ExternalDocumentID { get; set; }
    public EmissionDate EmissionDate { get; set; }
    public string ClientFile { get; set; }
    public string ContactIndex { get; set; }
    public string PaymentCondition { get; set; }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar