private void DetermineParameterName(JsonPropertyInfo matchingProperty) { NameAsString = matchingProperty.NameAsString !; // `NameAsString` is valid UTF16, so just call the simple UTF16->UTF8 encoder. ParameterName = Encoding.UTF8.GetBytes(NameAsString); ParameterNameKey = JsonClassInfo.GetKey(ParameterName); }
private void DeterminePropertyName() { if (PropertyInfo == null) { return; } JsonPropertyNameAttribute nameAttribute = GetAttribute <JsonPropertyNameAttribute>(PropertyInfo); if (nameAttribute != null) { string name = nameAttribute.Name; if (name == null) { ThrowHelper.ThrowInvalidOperationException_SerializerPropertyNameNull(ParentClassType, this); } NameAsString = name; } else if (Options.PropertyNamingPolicy != null) { string name = Options.PropertyNamingPolicy.ConvertName(PropertyInfo.Name); if (name == null) { ThrowHelper.ThrowInvalidOperationException_SerializerPropertyNameNull(ParentClassType, this); } NameAsString = name; } else { NameAsString = PropertyInfo.Name; } Debug.Assert(NameAsString != null); // At this point propertyName is valid UTF16, so just call the simple UTF16->UTF8 encoder. Name = Encoding.UTF8.GetBytes(NameAsString); // Cache the escaped property name. EscapedName = JsonEncodedText.Encode(Name, Options.Encoder); ulong key = JsonClassInfo.GetKey(Name); PropertyNameKey = key; }