Skip to content

Commit ca77f0a

Browse files
m-nashjsquirechristothes
authored
Address archboard feedback (Azure#38403)
* address archboard feedback * update api * add deserialization constructor to trackresourcedata * update api * Update sdk/core/Azure.Core/src/Serialization/ModelSerializerOptions.cs Co-authored-by: Jesse Squire <jsquire@microsoft.com> * update deserialization proxy attribute * Update sdk/core/Azure.Core/src/Serialization/ModelSerializer.cs Co-authored-by: Christopher Scott <chriss@microsoft.com> * Add test case to validate non subtype deserialization proxy that doesn't implement interface --------- Co-authored-by: Jesse Squire <jsquire@microsoft.com> Co-authored-by: Christopher Scott <chriss@microsoft.com>
1 parent fbd50bd commit ca77f0a

22 files changed

+1534
-98
lines changed

sdk/core/Azure.Core/api/Azure.Core.net461.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1078,10 +1078,10 @@ public ServerCertificateCustomValidationArgs(System.Security.Cryptography.X509Ce
10781078
namespace Azure.Core.Serialization
10791079
{
10801080
[System.AttributeUsageAttribute(System.AttributeTargets.Class)]
1081-
public sealed partial class AbstractHierarchyDeserializerAttribute : System.Attribute
1081+
public sealed partial class DeserializationProxyAttribute : System.Attribute
10821082
{
1083-
public AbstractHierarchyDeserializerAttribute(System.Type typeToActivate) { }
1084-
public System.Type TypeToActivate { get { throw null; } }
1083+
public DeserializationProxyAttribute(System.Type proxyType) { }
1084+
public System.Type ProxyType { get { throw null; } }
10851085
}
10861086
[System.Diagnostics.DebuggerDisplayAttribute("{DebuggerDisplay,nq}")]
10871087
public sealed partial class DynamicData : System.Dynamic.IDynamicMetaObjectProvider, System.IDisposable
@@ -1157,10 +1157,10 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Azure.Core.Se
11571157
}
11581158
public static partial class ModelSerializer
11591159
{
1160-
public static object Deserialize(System.BinaryData data, System.Type returnType, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
1161-
public static object Deserialize(System.BinaryData data, System.Type returnType, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
1162-
public static T Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerFormat format) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1163-
public static T Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerOptions? options = null) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1160+
public static object? Deserialize(System.BinaryData data, System.Type returnType, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
1161+
public static object? Deserialize(System.BinaryData data, System.Type returnType, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
1162+
public static T? Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerFormat format) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1163+
public static T? Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerOptions? options = null) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
11641164
public static System.BinaryData Serialize(object model, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
11651165
public static System.BinaryData Serialize(object model, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
11661166
public static System.BinaryData SerializeCore(Azure.Core.Serialization.IModelJsonSerializable<object> model, Azure.Core.Serialization.ModelSerializerOptions options) { throw null; }
@@ -1191,7 +1191,7 @@ public partial class ModelSerializerOptions
11911191
public ModelSerializerOptions() { }
11921192
public ModelSerializerOptions(Azure.Core.Serialization.ModelSerializerFormat format) { }
11931193
public Azure.Core.Serialization.ModelSerializerFormat Format { get { throw null; } }
1194-
public System.Func<System.Type, Azure.Core.Serialization.ObjectSerializer>? GenericTypeSerializerCreator { get { throw null; } set { } }
1194+
public System.Func<System.Type, Azure.Core.Serialization.ObjectSerializer>? ObjectSerializerResolver { get { throw null; } set { } }
11951195
}
11961196
public abstract partial class ObjectSerializer
11971197
{

sdk/core/Azure.Core/api/Azure.Core.net472.cs

Lines changed: 1239 additions & 0 deletions
Large diffs are not rendered by default.

sdk/core/Azure.Core/api/Azure.Core.net5.0.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1078,11 +1078,11 @@ public ServerCertificateCustomValidationArgs(System.Security.Cryptography.X509Ce
10781078
namespace Azure.Core.Serialization
10791079
{
10801080
[System.AttributeUsageAttribute(System.AttributeTargets.Class)]
1081-
public sealed partial class AbstractHierarchyDeserializerAttribute : System.Attribute
1081+
public sealed partial class DeserializationProxyAttribute : System.Attribute
10821082
{
1083-
public AbstractHierarchyDeserializerAttribute([System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type typeToActivate) { }
1083+
public DeserializationProxyAttribute([System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type proxyType) { }
10841084
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)]
1085-
public System.Type TypeToActivate { get { throw null; } }
1085+
public System.Type ProxyType { get { throw null; } }
10861086
}
10871087
[System.Diagnostics.DebuggerDisplayAttribute("{DebuggerDisplay,nq}")]
10881088
public sealed partial class DynamicData : System.Dynamic.IDynamicMetaObjectProvider, System.IDisposable
@@ -1158,10 +1158,10 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Azure.Core.Se
11581158
}
11591159
public static partial class ModelSerializer
11601160
{
1161-
public static object Deserialize(System.BinaryData data, [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type returnType, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
1162-
public static object Deserialize(System.BinaryData data, [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type returnType, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
1163-
public static T Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerFormat format) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1164-
public static T Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerOptions? options = null) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1161+
public static object? Deserialize(System.BinaryData data, [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type returnType, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
1162+
public static object? Deserialize(System.BinaryData data, [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type returnType, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
1163+
public static T? Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerFormat format) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1164+
public static T? Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerOptions? options = null) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
11651165
public static System.BinaryData Serialize(object model, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
11661166
public static System.BinaryData Serialize(object model, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
11671167
public static System.BinaryData SerializeCore(Azure.Core.Serialization.IModelJsonSerializable<object> model, Azure.Core.Serialization.ModelSerializerOptions options) { throw null; }
@@ -1192,7 +1192,7 @@ public partial class ModelSerializerOptions
11921192
public ModelSerializerOptions() { }
11931193
public ModelSerializerOptions(Azure.Core.Serialization.ModelSerializerFormat format) { }
11941194
public Azure.Core.Serialization.ModelSerializerFormat Format { get { throw null; } }
1195-
public System.Func<System.Type, Azure.Core.Serialization.ObjectSerializer>? GenericTypeSerializerCreator { get { throw null; } set { } }
1195+
public System.Func<System.Type, Azure.Core.Serialization.ObjectSerializer>? ObjectSerializerResolver { get { throw null; } set { } }
11961196
}
11971197
public abstract partial class ObjectSerializer
11981198
{

sdk/core/Azure.Core/api/Azure.Core.net6.0.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1078,11 +1078,11 @@ public ServerCertificateCustomValidationArgs(System.Security.Cryptography.X509Ce
10781078
namespace Azure.Core.Serialization
10791079
{
10801080
[System.AttributeUsageAttribute(System.AttributeTargets.Class)]
1081-
public sealed partial class AbstractHierarchyDeserializerAttribute : System.Attribute
1081+
public sealed partial class DeserializationProxyAttribute : System.Attribute
10821082
{
1083-
public AbstractHierarchyDeserializerAttribute([System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type typeToActivate) { }
1083+
public DeserializationProxyAttribute([System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type proxyType) { }
10841084
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)]
1085-
public System.Type TypeToActivate { get { throw null; } }
1085+
public System.Type ProxyType { get { throw null; } }
10861086
}
10871087
[System.Diagnostics.DebuggerDisplayAttribute("{DebuggerDisplay,nq}")]
10881088
public sealed partial class DynamicData : System.Dynamic.IDynamicMetaObjectProvider, System.IDisposable
@@ -1159,10 +1159,10 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Azure.Core.Se
11591159
}
11601160
public static partial class ModelSerializer
11611161
{
1162-
public static object Deserialize(System.BinaryData data, [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type returnType, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
1163-
public static object Deserialize(System.BinaryData data, [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type returnType, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
1164-
public static T Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerFormat format) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1165-
public static T Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerOptions? options = null) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1162+
public static object? Deserialize(System.BinaryData data, [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type returnType, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
1163+
public static object? Deserialize(System.BinaryData data, [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type returnType, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
1164+
public static T? Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerFormat format) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1165+
public static T? Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerOptions? options = null) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
11661166
public static System.BinaryData Serialize(object model, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
11671167
public static System.BinaryData Serialize(object model, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
11681168
public static System.BinaryData SerializeCore(Azure.Core.Serialization.IModelJsonSerializable<object> model, Azure.Core.Serialization.ModelSerializerOptions options) { throw null; }
@@ -1193,7 +1193,7 @@ public partial class ModelSerializerOptions
11931193
public ModelSerializerOptions() { }
11941194
public ModelSerializerOptions(Azure.Core.Serialization.ModelSerializerFormat format) { }
11951195
public Azure.Core.Serialization.ModelSerializerFormat Format { get { throw null; } }
1196-
public System.Func<System.Type, Azure.Core.Serialization.ObjectSerializer>? GenericTypeSerializerCreator { get { throw null; } set { } }
1196+
public System.Func<System.Type, Azure.Core.Serialization.ObjectSerializer>? ObjectSerializerResolver { get { throw null; } set { } }
11971197
}
11981198
public abstract partial class ObjectSerializer
11991199
{

sdk/core/Azure.Core/api/Azure.Core.netcoreapp2.1.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1078,10 +1078,10 @@ public ServerCertificateCustomValidationArgs(System.Security.Cryptography.X509Ce
10781078
namespace Azure.Core.Serialization
10791079
{
10801080
[System.AttributeUsageAttribute(System.AttributeTargets.Class)]
1081-
public sealed partial class AbstractHierarchyDeserializerAttribute : System.Attribute
1081+
public sealed partial class DeserializationProxyAttribute : System.Attribute
10821082
{
1083-
public AbstractHierarchyDeserializerAttribute(System.Type typeToActivate) { }
1084-
public System.Type TypeToActivate { get { throw null; } }
1083+
public DeserializationProxyAttribute(System.Type proxyType) { }
1084+
public System.Type ProxyType { get { throw null; } }
10851085
}
10861086
[System.Diagnostics.DebuggerDisplayAttribute("{DebuggerDisplay,nq}")]
10871087
public sealed partial class DynamicData : System.Dynamic.IDynamicMetaObjectProvider, System.IDisposable
@@ -1157,10 +1157,10 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Azure.Core.Se
11571157
}
11581158
public static partial class ModelSerializer
11591159
{
1160-
public static object Deserialize(System.BinaryData data, System.Type returnType, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
1161-
public static object Deserialize(System.BinaryData data, System.Type returnType, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
1162-
public static T Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerFormat format) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1163-
public static T Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerOptions? options = null) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1160+
public static object? Deserialize(System.BinaryData data, System.Type returnType, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
1161+
public static object? Deserialize(System.BinaryData data, System.Type returnType, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
1162+
public static T? Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerFormat format) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1163+
public static T? Deserialize<T>(System.BinaryData data, Azure.Core.Serialization.ModelSerializerOptions? options = null) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
11641164
public static System.BinaryData Serialize(object model, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
11651165
public static System.BinaryData Serialize(object model, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
11661166
public static System.BinaryData SerializeCore(Azure.Core.Serialization.IModelJsonSerializable<object> model, Azure.Core.Serialization.ModelSerializerOptions options) { throw null; }
@@ -1191,7 +1191,7 @@ public partial class ModelSerializerOptions
11911191
public ModelSerializerOptions() { }
11921192
public ModelSerializerOptions(Azure.Core.Serialization.ModelSerializerFormat format) { }
11931193
public Azure.Core.Serialization.ModelSerializerFormat Format { get { throw null; } }
1194-
public System.Func<System.Type, Azure.Core.Serialization.ObjectSerializer>? GenericTypeSerializerCreator { get { throw null; } set { } }
1194+
public System.Func<System.Type, Azure.Core.Serialization.ObjectSerializer>? ObjectSerializerResolver { get { throw null; } set { } }
11951195
}
11961196
public abstract partial class ObjectSerializer
11971197
{

0 commit comments

Comments
 (0)