Estoy haciendo rodar un convertidor json y tengo propiedades decoradas con una designación de mapeo. Estoy usando la reflexión para usar esa descripción de mapeo para determinar qué tipo de objeto crear y cómo se mapea. A continuación se muestra un ejemplo ...Lista <object> En la lista <T> usando la reflexión
[JsonMapping("location", JsonMapping.MappingType.Class)]
public Model.Location Location { get; set; }
Mi mapeo funciona bien hasta que llegue a una colección ...
[JsonMapping("images", JsonMapping.MappingType.Collection)]
public IList<Image> Images { get; set; }
El problema es que no puede convertir al tipo de lista lista de los bienes .
private static List<object> Map(Type t, JArray json) {
List<object> result = new List<object>();
var type = t.GetGenericArguments()[0];
foreach (var j in json) {
result.Add(Map(type, (JObject)j));
}
return result;
}
Esto me devuelve la lista, pero la reflexión quiere que implemento IConvertable antes de hacer una property.SetValue.
¿Alguien sabe de una mejor manera de hacer esto?
Probablemente no hace una diferencia, pero ¿ha intentado cambiar el tipo de retorno de Mapa de IList
Necesitará soporte de contravarianza para 'IList' para poder hacer eso. C# no tiene eso así que no puedes asignar 'IList list = new List
Bueno, podría cambiar el tipo a IList