private void DiscoverPublicPropertyHints() { if (!discoverPublicProperties) { return; } var serializationTypeProperties = serializationType.GetProperties(BindingFlags.Instance | BindingFlags.Public) .Where(f => !serializationValueHints.Any(h => h.Name == f.Name && h.Path == SerializationValueLocation.Property)); serializationValueHints.AddRange(serializationTypeProperties.Select(f => SerializationValueHint.Property(f.Name))); }
private void DiscoverPublicFieldHints() { if (!discoverPublicFields) { return; } var serializationTypeFields = serializationType.GetFields(BindingFlags.Instance | BindingFlags.Public) .Where(f => !serializationValueHints.Any(h => h.Name == f.Name && h.Path == SerializationValueLocation.Field)); serializationValueHints.AddRange(serializationTypeFields.Select(f => SerializationValueHint.Field(f.Name))); }
public static ObjectActivationHint Property(string parameterName, string propertyName) => new ObjectActivationHint(parameterName, SerializationValueHint.Property(propertyName));
public static ObjectActivationHint Field(string parameterName, string fieldName) => new ObjectActivationHint(parameterName, SerializationValueHint.Field(fieldName));
private ObjectActivationHint(string parameterName, SerializationValueHint value) { ParameterName = !string.IsNullOrEmpty(parameterName) ? parameterName : throw new ArgumentNullException(nameof(parameterName)); Value = value; }