protected override void OnCompleteType(
            ICompletionContext context,
            InputObjectTypeDefinition definition)
        {
            base.OnCompleteType(context, definition);

            ITypeConversion typeConversion =
                context.Services.GetTypeConversion();

            _objectToValueConverter =
                new InputObjectToObjectValueConverter(typeConversion);
            _valueToObjectConverter =
                new ObjectValueToInputObjectConverter(typeConversion);
            _objectToDictionary =
                new InputObjectToDictionaryConverter(typeConversion);
            _dictionaryToObject =
                new DictionaryToInputObjectConverter(typeConversion);

            SyntaxNode = definition.SyntaxNode;

            var fields = new List <InputField>();

            OnCompleteFields(context, definition, fields);

            Fields = new FieldCollection <InputField>(fields);
            FieldInitHelper.CompleteFields(context, definition, Fields);
        }
Beispiel #2
0
        protected override void OnCompleteType(
            ICompletionContext context,
            InputObjectTypeDefinition definition)
        {
            base.OnCompleteType(context, definition);

            ITypeConversion converter = context.Services.GetTypeConversion();

            _objectToValueConverter =
                new InputObjectToObjectValueConverter(converter);
            _objectToDictionary =
                new InputObjectToDictionaryConverter(converter);

            SyntaxNode = definition.SyntaxNode;

            var fields = new List <InputField>();

            OnCompleteFields(context, definition, fields);

            Fields = new FieldCollection <InputField>(fields);
            FieldInitHelper.CompleteFields(context, definition, Fields);

            if (ClrType == typeof(object) || Fields.Any(t => t.Property is null))
            {
                _parseLiteral = ov => InputObjectParserHelper.Parse(this, ov, converter);
                _deserialize  = map => InputObjectParserHelper.Deserialize(this, map, converter);
            }
        protected override void OnCompleteType(
            ITypeCompletionContext context,
            InputObjectTypeDefinition definition)
        {
            base.OnCompleteType(context, definition);

            ITypeConverter converter = context.Services.GetTypeConverter();

            _objectToValueConverter = new InputObjectToObjectValueConverter(converter);
            _objectToDictionary     = new InputObjectToDictionaryConverter(converter);

            SyntaxNode = definition.SyntaxNode;

            var fields = new List <InputField>();

            OnCompleteFields(context, definition, fields);

            Fields = FieldCollection <InputField> .From(
                fields,
                context.DescriptorContext.Options.SortFieldsByName);

            FieldInitHelper.CompleteFields(context, definition, Fields);

            if (RuntimeType == typeof(object) || Fields.Any(t => t.Property is null))
            {
                _parseLiteral = ov => ParseLiteralToDictionary(this, ov, converter);
                _deserialize  = map => DeserializeToDictionary(this, map, converter);
            }