Пример #1
0
        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)));
        }
Пример #2
0
        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)));
        }
Пример #3
0
 public static ObjectActivationHint Property(string parameterName, string propertyName)
 => new ObjectActivationHint(parameterName, SerializationValueHint.Property(propertyName));
Пример #4
0
 public static ObjectActivationHint Field(string parameterName, string fieldName)
 => new ObjectActivationHint(parameterName, SerializationValueHint.Field(fieldName));
Пример #5
0
 private ObjectActivationHint(string parameterName, SerializationValueHint value)
 {
     ParameterName = !string.IsNullOrEmpty(parameterName) ? parameterName : throw new ArgumentNullException(nameof(parameterName));
     Value         = value;
 }