/// <summary> /// Builds the root execution node. /// </summary> protected virtual RootExecutionNode BuildExecutionRootNode(ExecutionContext context, IObjectGraphType rootType) { var root = new RootExecutionNode(rootType, context.Operation.SelectionSet) { Result = context.RootValue }; SetSubFieldNodes(context, root); return(root); }
/// <summary> /// Builds the root execution node. /// </summary> protected static RootExecutionNode BuildExecutionRootNode(ExecutionContext context, IObjectGraphType rootType) { var root = new RootExecutionNode(rootType) { Result = context.RootValue }; var fields = System.Threading.Interlocked.Exchange(ref context.ReusableFields, null) ?? new Fields(); SetSubFieldNodes(context, root, fields.CollectFrom(context, rootType, context.Operation.SelectionSet)); fields.Clear(); System.Threading.Interlocked.CompareExchange(ref context.ReusableFields, fields, null); return(root); }
public static RootExecutionNode BuildExecutionRootNode(ExecutionContext context, IObjectGraphType rootType) { var root = new RootExecutionNode(rootType) { Result = context.RootValue }; var fields = CollectFields( context, rootType, context.Operation.SelectionSet); SetSubFieldNodes(context, root, fields); return(root); }