private void RegisterResolverClassesMethods() { foreach (var module in _server.Modules) { foreach (var resClass in module.ResolverClasses) { var resClassInfo = new ResolverClassInfo() { Module = module, Type = resClass }; _model.ResolverClasses.Add(resClassInfo); var methods = resClass.GetPublicMethods(); foreach (var m in methods) { var resAttr = m.GetAttribute <ResolvesFieldAttribute>(); var resInfo = new ResolverMethodInfo() { Method = m, Module = module, ResolverClass = resClassInfo, ReturnsTask = m.MethodReturnsTask(), ReturnType = m.GetReturnDataType(), ResolvesAttribute = resAttr }; if (resInfo.ReturnsTask) { resInfo.TaskResultReader = ExpressionHelper.CompileTaskResultReader(m.ReturnType); } _allResolverMethods.Add(resInfo); } } } }