示例#1
0
        protected override void OnRegisterDependencies(
            IInitializationContext context,
            ObjectTypeDefinition definition)
        {
            base.OnRegisterDependencies(context, definition);

            context.RegisterDependency(new ClrTypeReference(
                                           typeof(T), TypeContext.Output),
                                       TypeDependencyKind.Named);
            context.RegisterDependency(new ClrTypeReference(
                                           typeof(EdgeType <T>), TypeContext.Output),
                                       TypeDependencyKind.Default);
        }
示例#2
0
        public static void RegisterDependencies(
            this IInitializationContext context,
            InputObjectTypeDefinition definition)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (definition == null)
            {
                throw new ArgumentNullException(nameof(definition));
            }

            RegisterDirectiveDependencies(context, definition);

            foreach (InputFieldDefinition field in definition.Fields)
            {
                if (field.Type != null)
                {
                    context.RegisterDependency(field.Type,
                                               TypeDependencyKind.Default);
                }

                context.RegisterDependencyRange(
                    field.Directives.Select(t => t.TypeReference),
                    TypeDependencyKind.Completed);
            }
        }
示例#3
0
        protected override void OnRegisterDependencies(
            IInitializationContext context,
            ObjectTypeDefinition definition)
        {
            base.OnRegisterDependencies(context, definition);

            context.RegisterDependency(
                ClrTypeReference.FromSchemaType <EdgeType <T> >(),
                TypeDependencyKind.Default);
        }
示例#4
0
        private static void RegisterFieldDependencies(
            this IInitializationContext context,
            IEnumerable <ArgumentDefinition> fields)
        {
            foreach (ArgumentDefinition field in fields)
            {
                if (field.Type != null)
                {
                    context.RegisterDependency(field.Type,
                                               TypeDependencyKind.Completed);
                }

                context.RegisterDependencyRange(
                    field.Directives.Select(t => t.TypeReference),
                    TypeDependencyKind.Completed);
            }
        }
示例#5
0
        private static void RegisterFieldDependencies(
            this IInitializationContext context,
            IEnumerable <OutputFieldDefinitionBase> fields)
        {
            foreach (OutputFieldDefinitionBase field in fields)
            {
                if (field.Type != null)
                {
                    context.RegisterDependency(field.Type,
                                               TypeDependencyKind.Default);
                }

                context.RegisterDependencyRange(
                    field.Directives.Select(t => t.TypeReference),
                    TypeDependencyKind.Completed);

                RegisterFieldDependencies(context,
                                          fields.SelectMany(t => t.Arguments).ToList());
            }
        }