private bool RegisterTypes() { var typeRegistrar = new TypeRegistrar( _services, _descriptorContext, _initialTypes, ClrTypes, _contextData); if (typeRegistrar.Complete()) { foreach (InitializationContext context in typeRegistrar.InitializationContexts) { foreach (FieldReference reference in context.Resolvers.Keys) { if (!_res.ContainsKey(reference)) { _res[reference] = context.Resolvers[reference]; } } _initContexts.Add(context); } foreach (ITypeReference key in typeRegistrar.Registerd.Keys) { _types[key] = typeRegistrar.Registerd[key]; } return(true); } _errors.AddRange(typeRegistrar.Errors); return(false); }
public TypeDiscoverer( ISet <ITypeReference> initialTypes, IDictionary <IClrTypeReference, ITypeReference> clrTypeReferences, IDescriptorContext descriptorContext, IDictionary <string, object> contextData, ITypeInitializationInterceptor interceptor, IServiceProvider services) { _unregistered.AddRange(IntrospectionTypes.All); _unregistered.AddRange(Directives.All); _unregistered.AddRange(clrTypeReferences.Values); _unregistered.AddRange(initialTypes); _clrTypeReferences = clrTypeReferences; _typeRegistrar = new TypeRegistrar( _registeredTypes, clrTypeReferences, descriptorContext, contextData, interceptor, services); _handlers = new ITypeRegistrarHandler[] { new SchemaTypeReferenceHandler(), new ClrTypeReferenceHandler(), new SyntaxTypeReferenceHandler() }; }
private void RegisterTypes(ISchemaContext context, string queryTypeName) { var typeRegistrar = new TypeRegistrar( context.Types.GetTypes()); typeRegistrar.RegisterTypes(context, queryTypeName); _errors.AddRange(typeRegistrar.Errors); }
private void RegisterTypes(ISchemaContext context) { TypeRegistrar typeRegistrar = new TypeRegistrar( context.Types.GetTypes()); typeRegistrar.RegisterTypes(context); _errors.AddRange(typeRegistrar.Errors); }
public TypeDiscoverer( IDescriptorContext context, TypeRegistry typeRegistry, TypeLookup typeLookup, IEnumerable <ITypeReference> initialTypes, ITypeInterceptor interceptor, bool includeSystemTypes = true) { if (context is null) { throw new ArgumentNullException(nameof(context)); } if (typeRegistry is null) { throw new ArgumentNullException(nameof(typeRegistry)); } if (typeLookup is null) { throw new ArgumentNullException(nameof(typeLookup)); } if (initialTypes is null) { throw new ArgumentNullException(nameof(initialTypes)); } if (interceptor is null) { throw new ArgumentNullException(nameof(interceptor)); } _typeRegistry = typeRegistry; if (includeSystemTypes) { _unregistered.AddRange( IntrospectionTypes.CreateReferences(context.TypeInspector)); _unregistered.AddRange( Directives.CreateReferences(context.TypeInspector)); } _unregistered.AddRange(typeRegistry.GetTypeRefs()); _unregistered.AddRange(initialTypes.Distinct()); _typeRegistrar = new TypeRegistrar(context, typeRegistry, typeLookup, interceptor); _handlers = new ITypeRegistrarHandler[] { new SchemaTypeReferenceHandler(), new ExtendedTypeReferenceHandler(context.TypeInspector), new SyntaxTypeReferenceHandler(context.TypeInspector) }; _typeInspector = context.TypeInspector; }