¿Cómo puedo crear un nuevo List<T>
donde el T es un tipo de objeto dinámico .Cómo crear una lista con un tipo de objeto dinámico
que tienen
dynamic DyObj = new ExpandoObject();
if (condition1)
{
DyObj.Required = true;
DyObj.Message = "This is the first property being accessed through dynamic object";
}
if (condition2)
{
DyObj.Required = false;
DyObj.Message = "This is the second property....";
}
// and so on...
que quieren crear List<Dyobj>
y asignar todos los mensajes a Dyobj
sobre la base de condiciones.
datos de seguimiento de:
var DyObjectsList = new List<dynamic>;
dynamic DyObj = new ExpandoObject();
if (condition1) {
DyObj.Required = true;
DyObj.Message = "Message 1";
DyObjectsList.Add(DyObj);
}
if (condition2) {
DyObj.Required = false;
DyObj.Message = "Message 2";
DyObjectsList.Add(DyObj);
}
curiosamente todos los objetos en DyObjectsList se sustituyen con los valores del último objeto asignado.
@Krik gracias. Aquí esta lo que hice. var DyObjectsList = new List; DyObj dinámico = nuevo ExpandoObject(); if (condition1) {DyObj.Required = true; DyObj.Message = "Mensaje 1"; DyObjectsList .Add (DyObj); } if (condition2) {DyObj.Required = false; DyObj.Message = "Mensaje 2"; DyObjectsList .Add (DyObj); } Curiosamente, todos los objetos en DyObjectsList se reemplazan por los valores del último objeto asignado. –
BumbleBee
@BumbleBee, esto se debe a que está sobrescribiendo los valores de su objeto. Instancias ** una ** instancia de tu 'DyObj' y procedes a asignar valores * a esa misma instancia * dos veces.Debería mover la línea 'dynamic DyObj = new ExpandoObject();' dentro de sus bloques if, y debería terminar con dos copias de esa línea, ya que quiere agregar dos instancias separadas. –