Beispiel #1
0
 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);
             }
         }
     }
 }