private void CompleteAbstractTypeResolver( ICompletionContext context, ResolveAbstractType resolveAbstractType) { if (resolveAbstractType == null) { Func <ISchema> schemaResolver = context.GetSchemaResolver(); // if there is no custom type resolver we will use this default // abstract type resolver. IReadOnlyCollection <ObjectType> types = null; _resolveAbstractType = (c, r) => { if (types == null) { ISchema schema = schemaResolver.Invoke(); types = schema.GetPossibleTypes(this); } foreach (ObjectType type in types) { if (type.IsOfType(c, r)) { return(type); } } return(null); }; } else { _resolveAbstractType = resolveAbstractType; } }