FuncionCacheada
Caché de métodos reflejados utilizada para ejecutar funciones con parámetros de red.
FuncionCacheada
FuncionCacheada encapsula un método descubierto mediante reflexión y conserva su información de parámetros para evitar repetir trabajo al ejecutarlo.
Eco la utiliza en rutas donde una operación llega identificada dinámicamente, como llamadas remotas y otras funciones descubiertas por atributos.
Modelo
Nombre / ID de función
↓
Reflection
↓
FuncionCacheada
├── objeto objetivo
├── MethodInfo
├── parámetros
└── tipos esperadosEjecutar
object resultado = funcion.Execute(valor1, valor2);La ejecución establece success según el resultado del Invoke.
Conversión automática
Si los tipos recibidos no coinciden exactamente con los parámetros declarados, la implementación puede intentar convertirlos mediante Serializacion.CastValue.
Esto permite cierta tolerancia entre versiones del protocolo o representaciones compatibles.
No dependas de la conversión implícita
Los parámetros de una RFC deben diseñarse con tipos estables. La conversión automática es una capacidad de compatibilidad, no una sustitución de un contrato de red bien definido.
RMR y RCR
FuncionCacheada participa en el mecanismo que descubre y ejecuta métodos marcados con atributos de red:
[RMR]
void RecibirMensaje(string mensaje)
{
}[RCR]
static GameObject CrearUnidad(Vector3 posicion)
{
return ...;
}RMR representa una llamada remota; RCR, una rutina utilizada durante la creación remota de objetos.
Identificación de RMR
Una RMR puede utilizar un ID numérico opcional o una propiedad para distinguir varios métodos con el mismo nombre dentro del mismo objeto.
Usar IDs puede ahorrar bytes en rutas extremadamente frecuentes, pero dificulta el diagnóstico y acopla más el protocolo al código.
Referencias
Comunicación · RFC
Concepto de llamadas remotas desde gameplay.
Código fuente
Implementación actual de FuncionCacheada, RMR y RCR.
