Tengo el problema de que después de crear el objeto "oListType01" del tipo List < MyClass01> y después de asignarlo al otro objeto "oObjectType" de tipo "objeto" no puedo acceder a ninguna función más "ElementAt (1)". Intenté usar la reflexión, pero siempre obtengo una excepción (conflicto de parámetros) en el método "Invocar". ¿Alguien sabe por qué? Milán¿Cómo llamar al método de extensión "ElementAt" de la lista <T> con la reflexión?
MyClass01 oMy1 = new MyClass01();
oMy1._ID = "1";
MyClass01 oMy2 = new MyClass01();
oMy2._ID = "3";
IList<MyClass01> oListType01 = new List<MyClass01>();
oListType01.Add(oMy1);
oListType01.Add(oMy2);
object oObjectType = new object();
oObjectType = oListType01;
Desde aquí fowrads única oObjectType objeto está disponible (al alza sucede en la llamada de función separada en el caso real). En VS oObjectType muestra dos elementos a los que me gustaría acceder por reflexión.
MethodInfo mInfo = typeof(System.Linq.Enumerable).GetMethod("ElementAt").MakeGenericMethod(typeof(object));
object oSingleObject = mInfo.Invoke(oObjectType, new object[] { 1 });
¿Por qué lo asignas a un objeto en primer lugar? Si por algún motivo, y si sabe en tiempo de compilación, qué tipo de la lista siempre contendrá instancias de MyClass01, ¿por qué no la vuelve a enviar a una lista, como esta: ((List ) oObjectType) .ElementAt (1); –
tclem
plese echa un vistazo a "respuesta", donde expliqué que en invocación solo se puede usar referencia al oObjectType (no oListType01 y no MyClass01). – milan