Pregunta

¿Cómo implementaría un algoritmo para elegir la sobrecarga del método correcto al anular el siguiente método en DynamicObject?

bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
¿Fue útil?

Solución

Si este problema de sobrecarga se debe al reenvío a los métodos implementados estáticamente. Una solución podría ser dejar que el DLR haga el trabajo por usted. Fuente abierta Dinamitey Tiene un método estático que crea todo el código de enlace DLR, los cachores se pone de manera apropiada y luego lo invoca y el aglutinante DLR hace una resolución de sobrecarga. ejemplo. Este ejemplo maneja los parámetros nombrados/opcionales y los genéricos inferidos en la resolución de sobrecarga, sin embargo, DynamicObject no expone los genéricos explicados o los parámetros de salida en la invocación.

Otros consejos

No es sencillo ya que debe tener en cuenta cosas como la conversión de tipo implícita y los parámetros de longitud variable (que deben asignarse a las matrices).

los MethodCallResolver clase en el Zentrum Framework proporciona un ejemplo de cómo encontrar un método de coincidencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top