Esempio n. 1
0
            public void SetValue(object obj, object?value)
            {
                if (Type == typeof(TypeInfo) && value is string typeKey && _knownTypes.TryGetTypeInfo(typeKey, out var typeInfo))
                {
                    value = typeInfo;
                }

                PropertyInfo.SetValue(obj, value);
            }
Esempio n. 2
0
        public override TypeInfo?ReadJson(JsonReader reader, Type objectType, TypeInfo?existingValue, JsonSerializer serializer)
        {
            reader.CheckNotNull(nameof(reader));
            serializer.CheckNotNull(nameof(serializer));

            if (reader.TokenType == JsonToken.String &&
                reader.Value is string typeKey &&
                KnownTypesRegistry.TryGetTypeInfo(typeKey, out var typeInfo))
            {
                return(typeInfo);
            }

            return(base.ReadJson(reader, objectType, existingValue, serializer));
        }