|  |  |  | @ -8,6 +8,10 @@ namespace Volo.Abp.FeatureManagement.JsonConverters; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | public class StringValueTypeJsonConverter : JsonConverter<IStringValueType> | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |  |     private JsonSerializerOptions _readJsonSerializerOptions; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private JsonSerializerOptions _writeJsonSerializerOptions; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public override IStringValueType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |         var rootElement = JsonDocument.ParseValue(ref reader).RootElement; | 
			
		
	
	
		
			
				
					|  |  |  | @ -17,14 +21,13 @@ public class StringValueTypeJsonConverter : JsonConverter<IStringValueType> | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             var name = nameJsonProperty.Value.GetString(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             var newOptions = JsonSerializerOptionsHelper.Create(options, this, new ValueValidatorJsonConverter(), | 
			
		
	
		
			
				
					|  |  |  |  |                 new SelectionStringValueItemSourceJsonConverter()); | 
			
		
	
		
			
				
					|  |  |  |  |             _readJsonSerializerOptions ??= JsonSerializerOptionsHelper.Create(options, this, new ValueValidatorJsonConverter(), new SelectionStringValueItemSourceJsonConverter()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             return name switch | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 "SelectionStringValueType" =>  rootElement.Deserialize<SelectionStringValueType>(newOptions), | 
			
		
	
		
			
				
					|  |  |  |  |                 "FreeTextStringValueType" => rootElement.Deserialize<FreeTextStringValueType>(newOptions), | 
			
		
	
		
			
				
					|  |  |  |  |                 "ToggleStringValueType" => rootElement.Deserialize<ToggleStringValueType>(newOptions), | 
			
		
	
		
			
				
					|  |  |  |  |                 "SelectionStringValueType" =>  rootElement.Deserialize<SelectionStringValueType>(_readJsonSerializerOptions), | 
			
		
	
		
			
				
					|  |  |  |  |                 "FreeTextStringValueType" => rootElement.Deserialize<FreeTextStringValueType>(_readJsonSerializerOptions), | 
			
		
	
		
			
				
					|  |  |  |  |                 "ToggleStringValueType" => rootElement.Deserialize<ToggleStringValueType>(_readJsonSerializerOptions), | 
			
		
	
		
			
				
					|  |  |  |  |                 _ => throw new ArgumentException($"{nameof(IStringValueType)} named {name} was not found!") | 
			
		
	
		
			
				
					|  |  |  |  |             }; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
	
		
			
				
					|  |  |  | @ -34,7 +37,7 @@ public class StringValueTypeJsonConverter : JsonConverter<IStringValueType> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public override void Write(Utf8JsonWriter writer, IStringValueType value, JsonSerializerOptions options) | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |         var newOptions = JsonSerializerOptionsHelper.Create(options, this); | 
			
		
	
		
			
				
					|  |  |  |  |         JsonSerializer.Serialize(writer, value, value.GetType(), newOptions); | 
			
		
	
		
			
				
					|  |  |  |  |         _writeJsonSerializerOptions ??= JsonSerializerOptionsHelper.Create(options, this); | 
			
		
	
		
			
				
					|  |  |  |  |         JsonSerializer.Serialize(writer, value, value.GetType(), _writeJsonSerializerOptions); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |