c# - type - ¿Cómo acceder al índice de una lista genérica por reflexión?
new generic class c# (2)
Si está utilizando la reflexión (y por lo tanto, un montón de object
), ¿por qué no simplemente lanzar como IList
(no genérico) en su lugar?
es decir
IList list = (IList)actualList;
object foo = list[17];
Además, para su código original con Count
, no quiere decir int.Parse
- debería simplemente lanzar (ya que esperamos que Count
sea un int
).
ok, soy una clase y paso un objeto como propiedad.
el objeto que paso es una List<X>
en mi clase estoy tratando de acceder al índice de objetos por reflexión ¡PERO NO PUEDO!
Ejemplo:
esta clase funciona. Acabo de escribir la parte que quiero mostrarte y necesito ayuda.
class MyClass
{
private object _recordSet;
public object RecordSet
{
get { return _recordSet; }
set { _recordSet = value; }
}
public string Draw()
{
system.reflection.Assembly asem = system.reflection.Assembly.getAssembly(_dataSource.GetType());
object instance;
instance = asem.CreateInstance(_dataSource.GetType().UnderlyingSystemType.FullName);
//to access de Count of my List
int recordcount = int.Parse(_dataSource.GetType().GetProperty("Count").GetValue(_dataSource,null));
//i need to do a
for(int cont = 0; cont < recordCount; cont++)
{
_dataSource[cont].Name; // <-- THIS PART IS NOT WORKING!!! because i cant access the Index Directly.... WHAT TO DO!! ???
}
}
}
Simplemente eche su objeto a una lista primero, no necesita reflexión aquí.