public MethodInf(AbstractBufferedReader reader, IFieldHandlerFactory fieldHandlerFactory) { _name = reader.ReadString(); _ifaceName = reader.ReadString(); var resultFieldHandlerName = reader.ReadString(); if (resultFieldHandlerName != null) { _resultFieldHandler = fieldHandlerFactory.CreateFromName(resultFieldHandlerName, reader.ReadByteArray(), FieldHandlerOptions.None); } var parameterCount = reader.ReadVUInt32(); _parameters = new ParameterInf[parameterCount]; for (int i = 0; i < _parameters.Length; i++) { _parameters[i] = new ParameterInf(reader, fieldHandlerFactory); } }
public MethodInf(MethodInfo method, IFieldHandlerFactory fieldHandlerFactory) { MethodInfo = method; _name = method.Name; foreach (var itf in GetInterfacesForMethod(method.DeclaringType, method.GetBaseDefinition())) { _ifaceName = itf.Name; break; } var syncReturnType = method.ReturnType.UnwrapTask(); if (syncReturnType != typeof(void)) _resultFieldHandler = fieldHandlerFactory.CreateFromType(syncReturnType, FieldHandlerOptions.None); var parameterInfos = method.GetParameters(); _parameters = new ParameterInf[parameterInfos.Length]; for (int i = 0; i < parameterInfos.Length; i++) { _parameters[i] = new ParameterInf(parameterInfos[i], fieldHandlerFactory); } }