Skip to content

Commit c725c18

Browse files
nisha-bhatiam-nashannelo-msft
authored
[Azure.Core] Add Public Model Serialization (Azure#35946)
* Update serializer (Azure#35735) * wip * wip * wip * wip * wip * Update serializer (Azure#35741) * [Azure.Core] add List property tests and update ReadOnly Test (Azure#35904) * [Azure.Core] Update SerializableOptions.cs (Azure#35947) * [Azure.Core] add test helper for Models (Azure#35968) * [Azure.Core] Update IJsonSerializable with non Try methods (Azure#36164) * Add scaffolding for readme (Azure#36342) * add scaffolding for readme * fix type on class name * one more typo :-( * make tests sync * Add use cases for explicit casts (Azure#36391) * add use cases for explicit casts * remove extra empty line * add custom expected value for net462 * [Azure.Core] Update Serializer (Azure#36376) * Add use cases for stj (Azure#36399) * add use cases for stj * address feedback * add some clarification to readme * [Azure.Core] Add public static deserializer (Azure#36402) * wip * wip * wip * Update StaticDeserializerTests.cs * Update StaticDeserializerTests.cs * Update StaticDeserializerTests.cs * Add model serializer example (Azure#36418) * add use cases for stj * address feedback * add some clarification to readme * add model serializer example * move serialization classes into azure.core.serialization * update after namespace move * [Azure.Core] Add NewtonSoft Json example (Azure#36453) * Update SerializableOptions.cs * wip * wip * update * wip * wip * add generic modeljsonconverter (Azure#36854) * [Azure.Core] Add Newton soft BYOM case (Azure#36794) * wip * Update ModelSerializer.cs * wip * Update ReadOnlyPropertyTests.cs * wip * Update SerializableOptions.cs * Update SerializableOptions.cs * wip * wip * Update SerializationSamples.cs * regen api after merge * Demo of what it would look like for public surface (Azure#36857) * demo of what it would look like for public surface * wip * update tests and more renames * name tweaks * update api * add nullable * adjust public api surface and move test cases to public project to avoid internalsvisibleto * integrate feature/updateSerializer * rename IModel to IModelSerializable since it now has the serialization methods on it * share deserialization code between converter and modelserializer * [Azure.Core] Add XmlSerializer (Azure#37155) * wip * wip * Update Serialization.md * Update ModelXmlTests.cs * wip * wip * update combined interface example --------- Co-authored-by: m-nash <prognash@gmail.com> * add examples for combined interface (Azure#37245) * regen api after merge * Update to v1 api surface (Azure#37276) * update to v1 api surface * update api after merge * wip (Azure#37351) * wip (Azure#37544) * [Azure.Core] Update options to use Format string (Azure#37467) * wip * wip * Update UsingJsonSerializerTests.cs * wip * Update Serialization.md * wip * wip * wip * wip * wip * wip * wip * wip * Update ModelSerializerOptions.cs * wip * Update ModelSerializerOptions.cs * Update ModelSerializerOptions.cs * Update format to have J and W and implement json always on xml models (Azure#37815) * update format to have J and W and implement json always on xml models * update api * Perf checks (Azure#37349) * wip * update benchmark to use a real model from compute * update api * add multi buffer option and benchmarks for larger object * minor fixes on perf * perf updates and split the xml / json interfaces so we can take Utf8JsonWriter * add delayed RequestContent to improve implicit cast perf * fixes after merge * add utf8jsonreader deserialize * update for the rest of the test models with jsonreader * update api * fix typo * upload bimodal repro * return values from benchmarks * updates after merge * update modelserializeroptions to a struct * wip * update to split request content and sequence writer * update api * remove static azure default options since new is zero alloc * update api * add non generic overloads in modelserializer * Revert "update api" This reverts commit 34c0f6b. * Revert "remove static azure default options since new is zero alloc" This reverts commit 5f7bcfa. * wip * updates after merge * update api * add memory diag by default for all benchmarks * use fixed settings to run benchmarks faster * add package needed to use ETW profiler in benchmark * change dictionary to resolver factory * update options back to class * update to make interface generic * remove two way implicit * add XElement api on public interface * update api * swap to struct for options * remove unused shared source * Hide get sequence until we deal with use-after-free (Azure#37893) * hide getsequence until we deal with use-after-free * update api * remove broken inheritdocs * Testing public test project failure in ci (Azure#37894) * testing public test project failure in ci * mark the project as test project * add public test to split list * set support project to false to run tests in ci * add failing case after merge * remove failing test * Address api review comments and add more xml docs (Azure#37916) * address api review feedback * switch options to class and add a fozen static reference * update api * rename WriteTo -> CopyTo * update snippets * update request content create to take an imodelserializable (Azure#37939) * Mnash request conent i model serializable (Azure#37941) * update request content create to take an imodelserializable * make sequenceWriter internal * update reflection case for modelserializer (Azure#37945) * Address archboard feedback (Azure#37949) * move convert to binary data onto modelserializer * validate error scenarios for modelserializer * rename default wire options * add overload to converter ctor * update for format overloads and docs * update format docs * add tests for more validation around multiple types in a single json serializer instance * Remove xml interface (Azure#37967) * remove IModelXmlSerializable * update api * Address feedback from Azure#35946 (Azure#37971) * remove IModelXmlSerializable * update api * address initial feedback * remove reference to utf8jsonreader helpers * update debug assert * Add some more testing around SequenceWriter (Azure#37973) * add some tests * more tests * wip * add benchmarks for RequestContent * update request content to use sequence writer access class * add write lock to serialization * remove empty file * harden flaky test * add singletons for known format types (Azure#38007) * Move SequenceWriter to private class (Azure#38013) * add additional feedback on sequenceWriterAccess * move inner private class to another file * delete Readme and associated files (Azure#38064) * Add tests for model serialization (Azure#38042) * re-organize common test code and add initial tests for ModelWriter * missed files * update perf proj to use common testdata * group model serializer tests * update api * wip * separate read lock * make cast succeed on null (Azure#38105) * Make ModelSerializer compatible with AOT (Azure#38010) * add new attribute to deterministically find the default subclass * update test since message changed * address comments * add aot attributes up the call chain * remove un-needed attribute * add unreferenced code attribute to ModelJsonConverter * remove attribute from jsonconverter overload * conditionally add the unreferencedcode attribute to modeljsonconverter class * address comments * rename unknown subclass attribute * Update sdk/core/Azure.Core/src/Serialization/IModelJsonSerializable.cs Co-authored-by: Anne Thompson <annelo@microsoft.com> * Update sdk/core/Azure.Core/src/Serialization/IModelSerializable.cs Co-authored-by: Anne Thompson <annelo@microsoft.com> * Update sdk/core/Azure.Core/src/Serialization/IModelSerializable.cs Co-authored-by: Anne Thompson <annelo@microsoft.com> * address exception feedback (Azure#38120) * update helper so its non boxing and add struct test cases (Azure#38125) * Address some final feedback (Azure#38130) * hide model writer * rename abstract hierarchy deserializer * update wire format docs * Minor cleanup (Azure#38137) * address feedback * add checks around stream with long length * change from notsupported to format exception (Azure#38147) * address feedback (Azure#38150) * update changelog --------- Co-authored-by: m-nash <64171366+m-nash@users.noreply.github.com> Co-authored-by: m-nash <prognash@gmail.com> Co-authored-by: Anne Thompson <annelo@microsoft.com>
1 parent af51fad commit c725c18

File tree

135 files changed

+21830
-20
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+21830
-20
lines changed

common/Perf/Azure.Test.Perf/Azure.Test.Perf.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<PackageReference Include="System.Text.Encodings.Web" />
1313
<PackageReference Include="System.Threading.Channels" />
1414
<PackageReference Include="BenchmarkDotNet" />
15+
<PackageReference Include="BenchmarkDotNet.Diagnostics.Windows" />
1516
<Reference Include="System.Net.Http" Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'" />
1617
</ItemGroup>
1718
</Project>

eng/Packages.Data.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@
213213
<PackageReference Update="Azure.Storage.Blobs" Version="12.13.1" />
214214
<PackageReference Update="Azure.Storage.Files.DataLake" Version="12.8.0" />
215215
<PackageReference Update="BenchmarkDotNet" Version="0.13.4" />
216+
<PackageReference Update="BenchmarkDotNet.Diagnostics.Windows" Version="0.13.4" />
216217
<PackageReference Update="Castle.Core" Version="5.1.0" />
217218
<PackageReference Update="CommandLineParser" Version="2.8.0" />
218219
<PackageReference Update="FluentAssertions" Version="5.10.3" />

eng/scripts/splittestdependencies/tests/inputs/projects.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ $(RepoRoot)sdk\core\Azure.Core.Experimental\tests\Azure.Core.Experimental.Tests.
4040
$(RepoRoot)sdk\core\Azure.Core.Experimental\tests\perf\Azure.Core.Experimental.Performance.csproj
4141
$(RepoRoot)sdk\core\Azure.Core.TestFramework\tests\Azure.Core.TestFramework.Tests.csproj
4242
$(RepoRoot)sdk\core\Azure.Core\tests\Azure.Core.Tests.csproj
43+
$(RepoRoot)sdk\core\Azure.Core\tests\public\Azure.Core.Tests.Public.csproj
4344
$(RepoRoot)sdk\core\Microsoft.Azure.Core.NewtonsoftJson\tests\Microsoft.Azure.Core.NewtonsoftJson.Tests.csproj
4445
$(RepoRoot)sdk\core\Microsoft.Azure.Core.Spatial.NewtonsoftJson\tests\Microsoft.Azure.Core.Spatial.NewtonsoftJson.Tests.csproj
4546
$(RepoRoot)sdk\core\Microsoft.Azure.Core.Spatial\tests\Microsoft.Azure.Core.Spatial.Tests.csproj

sdk/core/Azure.Core/Azure.Core.sln

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Core.Expressions.Data
5353
EndProject
5454
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Core.Tests.Public", "tests\public\Azure.Core.Tests.Public.csproj", "{BFBF8EF7-61D8-40E7-9E98-468A0427761E}"
5555
EndProject
56+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Azure.Core.Tests.Common", "tests\common\Azure.Core.Tests.Common.csproj", "{0EEDF53F-120A-45B1-8468-A97A0D46DBAC}"
57+
EndProject
5658
Global
5759
GlobalSection(SolutionConfigurationPlatforms) = preSolution
5860
Debug|Any CPU = Debug|Any CPU
@@ -131,6 +133,10 @@ Global
131133
{BFBF8EF7-61D8-40E7-9E98-468A0427761E}.Debug|Any CPU.Build.0 = Debug|Any CPU
132134
{BFBF8EF7-61D8-40E7-9E98-468A0427761E}.Release|Any CPU.ActiveCfg = Release|Any CPU
133135
{BFBF8EF7-61D8-40E7-9E98-468A0427761E}.Release|Any CPU.Build.0 = Release|Any CPU
136+
{0EEDF53F-120A-45B1-8468-A97A0D46DBAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
137+
{0EEDF53F-120A-45B1-8468-A97A0D46DBAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
138+
{0EEDF53F-120A-45B1-8468-A97A0D46DBAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
139+
{0EEDF53F-120A-45B1-8468-A97A0D46DBAC}.Release|Any CPU.Build.0 = Release|Any CPU
134140
EndGlobalSection
135141
GlobalSection(SolutionProperties) = preSolution
136142
HideSolutionNode = FALSE

sdk/core/Azure.Core/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
### Features Added
66

7+
-Added `ModelSerializer` which provides a public API to serialize and deserialize models. The new API works with any classes that implement `IModelSerializeable`.
8+
79
### Breaking Changes
810

911
### Bugs Fixed

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

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,8 @@ public abstract partial class RequestContent : System.IDisposable
539539
{
540540
protected RequestContent() { }
541541
public static Azure.Core.RequestContent Create(Azure.Core.Serialization.DynamicData content) { throw null; }
542+
public static Azure.Core.RequestContent Create(Azure.Core.Serialization.IModelJsonSerializable<object> model, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
543+
public static Azure.Core.RequestContent Create(Azure.Core.Serialization.IModelSerializable<object> model, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
542544
public static Azure.Core.RequestContent Create(System.BinaryData content) { throw null; }
543545
public static Azure.Core.RequestContent Create(System.Buffers.ReadOnlySequence<byte> bytes) { throw null; }
544546
public static Azure.Core.RequestContent Create(byte[] bytes) { throw null; }
@@ -1075,6 +1077,12 @@ public ServerCertificateCustomValidationArgs(System.Security.Cryptography.X509Ce
10751077
}
10761078
namespace Azure.Core.Serialization
10771079
{
1080+
[System.AttributeUsageAttribute(System.AttributeTargets.Class)]
1081+
public sealed partial class AbstractHierarchyDeserializerAttribute : System.Attribute
1082+
{
1083+
public AbstractHierarchyDeserializerAttribute(System.Type typeToActivate) { }
1084+
public System.Type TypeToActivate { get { throw null; } }
1085+
}
10781086
[System.Diagnostics.DebuggerDisplayAttribute("{DebuggerDisplay,nq}")]
10791087
public sealed partial class DynamicData : System.Dynamic.IDynamicMetaObjectProvider, System.IDisposable
10801088
{
@@ -1109,6 +1117,16 @@ public partial interface IMemberNameConverter
11091117
{
11101118
string? ConvertMemberName(System.Reflection.MemberInfo member);
11111119
}
1120+
public partial interface IModelJsonSerializable<out T> : Azure.Core.Serialization.IModelSerializable<T>
1121+
{
1122+
T Deserialize(ref System.Text.Json.Utf8JsonReader reader, Azure.Core.Serialization.ModelSerializerOptions options);
1123+
void Serialize(System.Text.Json.Utf8JsonWriter writer, Azure.Core.Serialization.ModelSerializerOptions options);
1124+
}
1125+
public partial interface IModelSerializable<out T>
1126+
{
1127+
T Deserialize(System.BinaryData data, Azure.Core.Serialization.ModelSerializerOptions options);
1128+
System.BinaryData Serialize(Azure.Core.Serialization.ModelSerializerOptions options);
1129+
}
11121130
public partial class JsonObjectSerializer : Azure.Core.Serialization.ObjectSerializer, Azure.Core.Serialization.IMemberNameConverter
11131131
{
11141132
public JsonObjectSerializer() { }
@@ -1127,6 +1145,54 @@ public enum JsonPropertyNames
11271145
UseExact = 0,
11281146
CamelCase = 1,
11291147
}
1148+
public partial class ModelJsonConverter : System.Text.Json.Serialization.JsonConverter<Azure.Core.Serialization.IModelJsonSerializable<object>>
1149+
{
1150+
public ModelJsonConverter() { }
1151+
public ModelJsonConverter(Azure.Core.Serialization.ModelSerializerFormat format) { }
1152+
public ModelJsonConverter(Azure.Core.Serialization.ModelSerializerOptions options) { }
1153+
public Azure.Core.Serialization.ModelSerializerOptions ModelSerializerOptions { get { throw null; } }
1154+
public override bool CanConvert(System.Type typeToConvert) { throw null; }
1155+
public override Azure.Core.Serialization.IModelJsonSerializable<object> Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) { throw null; }
1156+
public override void Write(System.Text.Json.Utf8JsonWriter writer, Azure.Core.Serialization.IModelJsonSerializable<object> value, System.Text.Json.JsonSerializerOptions options) { }
1157+
}
1158+
public static partial class ModelSerializer
1159+
{
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; }
1164+
public static System.BinaryData Serialize(object model, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
1165+
public static System.BinaryData Serialize(object model, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
1166+
public static System.BinaryData SerializeCore(Azure.Core.Serialization.IModelJsonSerializable<object> model, Azure.Core.Serialization.ModelSerializerOptions options) { throw null; }
1167+
public static System.BinaryData Serialize<T>(T model, Azure.Core.Serialization.ModelSerializerFormat format) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1168+
public static System.BinaryData Serialize<T>(T model, Azure.Core.Serialization.ModelSerializerOptions? options = null) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1169+
}
1170+
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
1171+
public readonly partial struct ModelSerializerFormat : System.IEquatable<Azure.Core.Serialization.ModelSerializerFormat>
1172+
{
1173+
private readonly object _dummy;
1174+
private readonly int _dummyPrimitive;
1175+
public static readonly Azure.Core.Serialization.ModelSerializerFormat Json;
1176+
public static readonly Azure.Core.Serialization.ModelSerializerFormat Wire;
1177+
public ModelSerializerFormat(string value) { throw null; }
1178+
public bool Equals(Azure.Core.Serialization.ModelSerializerFormat other) { throw null; }
1179+
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
1180+
public override bool Equals(object obj) { throw null; }
1181+
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
1182+
public override int GetHashCode() { throw null; }
1183+
public static bool operator ==(Azure.Core.Serialization.ModelSerializerFormat left, Azure.Core.Serialization.ModelSerializerFormat right) { throw null; }
1184+
public static implicit operator Azure.Core.Serialization.ModelSerializerFormat (string value) { throw null; }
1185+
public static bool operator !=(Azure.Core.Serialization.ModelSerializerFormat left, Azure.Core.Serialization.ModelSerializerFormat right) { throw null; }
1186+
public override string ToString() { throw null; }
1187+
}
1188+
public partial class ModelSerializerOptions
1189+
{
1190+
public static readonly Azure.Core.Serialization.ModelSerializerOptions DefaultWireOptions;
1191+
public ModelSerializerOptions() { }
1192+
public ModelSerializerOptions(Azure.Core.Serialization.ModelSerializerFormat format) { }
1193+
public Azure.Core.Serialization.ModelSerializerFormat Format { get { throw null; } }
1194+
public System.Func<System.Type, Azure.Core.Serialization.ObjectSerializer>? GenericTypeSerializerCreator { get { throw null; } set { } }
1195+
}
11301196
public abstract partial class ObjectSerializer
11311197
{
11321198
protected ObjectSerializer() { }

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

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,8 @@ public abstract partial class RequestContent : System.IDisposable
539539
{
540540
protected RequestContent() { }
541541
public static Azure.Core.RequestContent Create(Azure.Core.Serialization.DynamicData content) { throw null; }
542+
public static Azure.Core.RequestContent Create(Azure.Core.Serialization.IModelJsonSerializable<object> model, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
543+
public static Azure.Core.RequestContent Create(Azure.Core.Serialization.IModelSerializable<object> model, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
542544
public static Azure.Core.RequestContent Create(System.BinaryData content) { throw null; }
543545
public static Azure.Core.RequestContent Create(System.Buffers.ReadOnlySequence<byte> bytes) { throw null; }
544546
public static Azure.Core.RequestContent Create(byte[] bytes) { throw null; }
@@ -1075,6 +1077,13 @@ public ServerCertificateCustomValidationArgs(System.Security.Cryptography.X509Ce
10751077
}
10761078
namespace Azure.Core.Serialization
10771079
{
1080+
[System.AttributeUsageAttribute(System.AttributeTargets.Class)]
1081+
public sealed partial class AbstractHierarchyDeserializerAttribute : System.Attribute
1082+
{
1083+
public AbstractHierarchyDeserializerAttribute([System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type typeToActivate) { }
1084+
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)]
1085+
public System.Type TypeToActivate { get { throw null; } }
1086+
}
10781087
[System.Diagnostics.DebuggerDisplayAttribute("{DebuggerDisplay,nq}")]
10791088
public sealed partial class DynamicData : System.Dynamic.IDynamicMetaObjectProvider, System.IDisposable
10801089
{
@@ -1109,6 +1118,16 @@ public partial interface IMemberNameConverter
11091118
{
11101119
string? ConvertMemberName(System.Reflection.MemberInfo member);
11111120
}
1121+
public partial interface IModelJsonSerializable<out T> : Azure.Core.Serialization.IModelSerializable<T>
1122+
{
1123+
T Deserialize(ref System.Text.Json.Utf8JsonReader reader, Azure.Core.Serialization.ModelSerializerOptions options);
1124+
void Serialize(System.Text.Json.Utf8JsonWriter writer, Azure.Core.Serialization.ModelSerializerOptions options);
1125+
}
1126+
public partial interface IModelSerializable<out T>
1127+
{
1128+
T Deserialize(System.BinaryData data, Azure.Core.Serialization.ModelSerializerOptions options);
1129+
System.BinaryData Serialize(Azure.Core.Serialization.ModelSerializerOptions options);
1130+
}
11121131
public partial class JsonObjectSerializer : Azure.Core.Serialization.ObjectSerializer, Azure.Core.Serialization.IMemberNameConverter
11131132
{
11141133
public JsonObjectSerializer() { }
@@ -1127,6 +1146,54 @@ public enum JsonPropertyNames
11271146
UseExact = 0,
11281147
CamelCase = 1,
11291148
}
1149+
public partial class ModelJsonConverter : System.Text.Json.Serialization.JsonConverter<Azure.Core.Serialization.IModelJsonSerializable<object>>
1150+
{
1151+
public ModelJsonConverter() { }
1152+
public ModelJsonConverter(Azure.Core.Serialization.ModelSerializerFormat format) { }
1153+
public ModelJsonConverter(Azure.Core.Serialization.ModelSerializerOptions options) { }
1154+
public Azure.Core.Serialization.ModelSerializerOptions ModelSerializerOptions { get { throw null; } }
1155+
public override bool CanConvert(System.Type typeToConvert) { throw null; }
1156+
public override Azure.Core.Serialization.IModelJsonSerializable<object> Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) { throw null; }
1157+
public override void Write(System.Text.Json.Utf8JsonWriter writer, Azure.Core.Serialization.IModelJsonSerializable<object> value, System.Text.Json.JsonSerializerOptions options) { }
1158+
}
1159+
public static partial class ModelSerializer
1160+
{
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; }
1165+
public static System.BinaryData Serialize(object model, Azure.Core.Serialization.ModelSerializerFormat format) { throw null; }
1166+
public static System.BinaryData Serialize(object model, Azure.Core.Serialization.ModelSerializerOptions? options = null) { throw null; }
1167+
public static System.BinaryData SerializeCore(Azure.Core.Serialization.IModelJsonSerializable<object> model, Azure.Core.Serialization.ModelSerializerOptions options) { throw null; }
1168+
public static System.BinaryData Serialize<T>(T model, Azure.Core.Serialization.ModelSerializerFormat format) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1169+
public static System.BinaryData Serialize<T>(T model, Azure.Core.Serialization.ModelSerializerOptions? options = null) where T : Azure.Core.Serialization.IModelSerializable<T> { throw null; }
1170+
}
1171+
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
1172+
public readonly partial struct ModelSerializerFormat : System.IEquatable<Azure.Core.Serialization.ModelSerializerFormat>
1173+
{
1174+
private readonly object _dummy;
1175+
private readonly int _dummyPrimitive;
1176+
public static readonly Azure.Core.Serialization.ModelSerializerFormat Json;
1177+
public static readonly Azure.Core.Serialization.ModelSerializerFormat Wire;
1178+
public ModelSerializerFormat(string value) { throw null; }
1179+
public bool Equals(Azure.Core.Serialization.ModelSerializerFormat other) { throw null; }
1180+
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
1181+
public override bool Equals([System.Diagnostics.CodeAnalysis.AllowNullAttribute] object obj) { throw null; }
1182+
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
1183+
public override int GetHashCode() { throw null; }
1184+
public static bool operator ==(Azure.Core.Serialization.ModelSerializerFormat left, Azure.Core.Serialization.ModelSerializerFormat right) { throw null; }
1185+
public static implicit operator Azure.Core.Serialization.ModelSerializerFormat (string value) { throw null; }
1186+
public static bool operator !=(Azure.Core.Serialization.ModelSerializerFormat left, Azure.Core.Serialization.ModelSerializerFormat right) { throw null; }
1187+
public override string ToString() { throw null; }
1188+
}
1189+
public partial class ModelSerializerOptions
1190+
{
1191+
public static readonly Azure.Core.Serialization.ModelSerializerOptions DefaultWireOptions;
1192+
public ModelSerializerOptions() { }
1193+
public ModelSerializerOptions(Azure.Core.Serialization.ModelSerializerFormat format) { }
1194+
public Azure.Core.Serialization.ModelSerializerFormat Format { get { throw null; } }
1195+
public System.Func<System.Type, Azure.Core.Serialization.ObjectSerializer>? GenericTypeSerializerCreator { get { throw null; } set { } }
1196+
}
11301197
public abstract partial class ObjectSerializer
11311198
{
11321199
protected ObjectSerializer() { }

0 commit comments

Comments
 (0)