foreach a generic list returned in a method by reflection October 3, 2019
Posted by juanpablo1manrique in SharePoint.trackback
Un ejemplo bastante útil,
La definición del método en el .dll original
public List<CarroEntity> ObtenerCarros()
{
List<CarroEntity> list = new List<CarroEntity>();
list.Add(new CarroEntity() { Color = "Azul", Marca = "Mazda", Placa = "DSF450" });
list.Add(new CarroEntity() { Color = "Amarillo", Marca = "Renault", Placa = "ESF245" });
list.Add(new CarroEntity() { Color = "Verde", Marca = "Mercedes", Placa = "KLS435" });
list.Add(new CarroEntity() { Color = "GrisPlata", Marca = "BMW", Placa = "NBD645" });
list.Add(new CarroEntity() { Color = "Negro", Marca = "Mazda", Placa = "BGT845" });
list.Add(new CarroEntity() { Color = "Blanco", Marca = "Mazda", Placa = "BHT545" });
return list;
}
Llamar este método por reflection
Assembly asm = Assembly.LoadFrom(@"D:\MyCode\MyCode\JUAN.WinWPF\JUAN.Carros\bin\Debug\JUAN.Carros.dll");
Type t = asm.GetType("JUAN.Carros.CarrosBL");
var methodInfo = t.GetMethod("ObtenerCarros");
if (methodInfo == null)
{
throw new Exception("No such method exists.");
}
var objBLInstance = Activator.CreateInstance(t, null);
System.Collections.IEnumerable instances = (System.Collections.IEnumerable)methodInfo.Invoke(objBLInstance, null);
Type tEntity = asm.GetType("JUAN.Carros.CarroEntity");
var property = tEntity.GetProperty("Placa");
foreach (object obj in instances)
{
Console.WriteLine(property.GetValue(obj));
}
Console.ReadLine();
Saludos




Comments»
No comments yet — be the first.