# System.Text.Json.Serialization.Metadata

``` diff
 namespace System.Text.Json.Serialization.Metadata {
     public sealed class JsonObjectInfoValues<T> {
+        public Func<ICustomAttributeProvider>? ConstructorAttributeProviderFactory { get; set; }
     }
+    public abstract class JsonParameterInfo {
+        public ICustomAttributeProvider? AttributeProvider { get; }
+        public Type DeclaringType { get; }
+        public object? DefaultValue { get; }
+        public bool HasDefaultValue { get; }
+        public bool IsMemberInitializer { get; }
+        public bool IsNullable { get; }
+        public string Name { get; }
+        public Type ParameterType { get; }
+        public int Position { get; }
+    }
     public sealed class JsonParameterInfoValues {
+        public bool IsMemberInitializer { get; set; }
     }
     public abstract class JsonPropertyInfo {
+        public JsonParameterInfo? AssociatedParameter { get; }
+        public Type DeclaringType { get; }
     }
     public sealed class JsonPropertyInfoValues<T> {
+        public Func<ICustomAttributeProvider>? AttributeProviderFactory { get; set; }
     }
     public abstract class JsonTypeInfo {
+        public ICustomAttributeProvider ConstructorAttributeProvider { get; }
+        public Type ElementType { get; }
+        public Type KeyType { get; }
     }
 }
```

