Tengo una pregunta que implica llamar al método genérico de una clase con un parámetro de tipo que se conoce en tiempo de ejecución.Llamar a una función genérica con un parámetro de tipo determinado en el tiempo de ejecución
En concreto, el código es el siguiente manera:
FieldInfo[] dataFields = this.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);
// data is just a byte array used internally in DataStream
DataStream ds = new DataStream(data);
foreach (FieldInfo field in dataFields)
{
Type fieldType = field.FieldType;
// I want to call this method and pass in the type parameter specified by the field's type
object objData = (object) ds.Read<fieldType>();
}
la función de lectura() se ve así: propósito
public T Read() where T : struct
de esta función es la de devolver los datos leídos desde una matriz de bytes.
¿Hay alguna manera de llamar a un método genérico en el tiempo de ejecución de esta manera?
Gracias por la respuesta, nunca consideré un cambio de diseño tan simple. –
Mi problema no se parecía en nada a la pregunta de OP, pero usted demostró exactamente lo que necesitaba saber. ¡Gracias! – KennyZ