@azure-typespec/http-client-csharp-mgmt 1.0.0-alpha.20260601.1 → 1.0.0-alpha.20260604.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@
6
6
  "compilationOptions": {},
7
7
  "targets": {
8
8
  ".NETCoreApp,Version=v10.0": {
9
- "Azure.Generator.Management/1.0.0-alpha.20260601.1": {
9
+ "Azure.Generator.Management/1.0.0-alpha.20260604.1": {
10
10
  "dependencies": {
11
11
  "Azure.Core": "1.57.0",
12
12
  "Azure.Generator": "1.0.0-alpha.20260516.2",
@@ -729,7 +729,7 @@
729
729
  }
730
730
  },
731
731
  "libraries": {
732
- "Azure.Generator.Management/1.0.0-alpha.20260601.1": {
732
+ "Azure.Generator.Management/1.0.0-alpha.20260604.1": {
733
733
  "type": "project",
734
734
  "serviceable": false,
735
735
  "sha512": ""
@@ -800,21 +800,9 @@
800
800
  This uses a simpler TypeProvider-based implementation without inheriting from CollectionResultDefinition.
801
801
  </summary>
802
802
  </member>
803
- <member name="P:Azure.Generator.Management.Providers.InheritableSystemObjectModelProvider.IsSystemBase">
803
+ <member name="T:Azure.Generator.Management.Providers.ManagementModelProvider">
804
804
  <summary>
805
- True when this provider represents the system base type itself (e.g., TrackedResourceData).
806
- False when it represents a derived model whose base type is a system type.
807
- </summary>
808
- </member>
809
- <member name="M:Azure.Generator.Management.Providers.InheritableSystemObjectModelProvider.CreateSystemBase(System.Type,Microsoft.TypeSpec.Generator.Input.InputModelType)">
810
- <summary>
811
- Creates a provider representing the system base type itself (e.g., TrackedResource → TrackedResourceData).
812
- </summary>
813
- </member>
814
- <member name="M:Azure.Generator.Management.Providers.InheritableSystemObjectModelProvider.CreateDerived(Microsoft.TypeSpec.Generator.Input.InputModelType,Microsoft.TypeSpec.Generator.Primitives.CSharpType)">
815
- <summary>
816
- Creates a provider for a model that extends an inheritable system type.
817
- Overrides BuildBaseType() to return the correct framework CSharpType.
805
+ ModelProvider used for non-resource management-plane models.
818
806
  </summary>
819
807
  </member>
820
808
  <member name="M:Azure.Generator.Management.Providers.MockableArmClientProvider.TryCreate(System.Collections.Generic.IReadOnlyList{Azure.Generator.Management.Providers.ResourceClientProvider},System.Collections.Generic.IReadOnlyList{Azure.Generator.Management.Models.NonResourceMethod})">
@@ -901,6 +889,23 @@
901
889
  <returns></returns>
902
890
  <exception cref="T:System.NotSupportedException"></exception>
903
891
  </member>
892
+ <member name="T:Azure.Generator.Management.Providers.ResourceDataModelProvider">
893
+ <summary>
894
+ ModelProvider used for Azure resource data classes.
895
+ </summary>
896
+ <remarks>
897
+ Overrides identity-shaping members (<see cref="M:Azure.Generator.Management.Providers.ResourceDataModelProvider.BuildName"/>, <see cref="M:Azure.Generator.Management.Providers.ResourceDataModelProvider.BuildNamespace"/>,
898
+ <see cref="M:Azure.Generator.Management.Providers.ResourceDataModelProvider.BuildRelativeFilePath"/>) so that resource data classes are constructed with the
899
+ final name, namespace, and file path from the very first <c>Type</c> access.
900
+ <para>
901
+ In particular, overriding <see cref="M:Azure.Generator.Management.Providers.ResourceDataModelProvider.BuildName"/> to append <c>"Data"</c> is the only way to
902
+ prevent a user's resource-client customization partial (e.g.
903
+ <c>partial class FooResource : ArmResource</c>) from polluting <c>CustomCodeView.BaseType</c>:
904
+ once <c>Type</c> is constructed, the base type is captured into the immutable
905
+ <c>CSharpType._baseType</c>, and no subsequent visitor-driven rename can rewrite it.
906
+ </para>
907
+ </remarks>
908
+ </member>
904
909
  <member name="M:Azure.Generator.Management.Providers.ResourceSerializationProvider.GetInstantiableDataType">
905
910
  <summary>
906
911
  Gets the concrete type to use for instantiating the DataDeserializationInstance.
@@ -945,6 +950,34 @@
945
950
  <param name="id"></param>
946
951
  <returns></returns>
947
952
  </member>
953
+ <member name="T:Azure.Generator.Management.Snippets.JsonResponseDeserialization">
954
+ <summary>
955
+ Builds AOT-safe inline JSON deserialization for framework collection response types
956
+ (e.g. <c>IDictionary&lt;string, BinaryData&gt;</c> produced from a TypeSpec <c>Record&lt;unknown&gt;</c>).
957
+ These types do not implement <see cref="T:System.ClientModel.Primitives.IPersistableModel`1"/>, so
958
+ <c>ModelReaderWriter.Read&lt;T&gt;</c> cannot be used; instead the JSON payload is parsed and the
959
+ collection is constructed with explicit <c>foreach</c> loops.
960
+ </summary>
961
+ </member>
962
+ <member name="M:Azure.Generator.Management.Snippets.JsonResponseDeserialization.IsInlineJsonDeserializable(Microsoft.TypeSpec.Generator.Primitives.CSharpType)">
963
+ <summary>
964
+ Returns <c>true</c> when <paramref name="type"/> is a framework collection (dictionary or list)
965
+ that must be deserialized with inline JSON rather than <c>ModelReaderWriter.Read&lt;T&gt;</c>.
966
+ </summary>
967
+ </member>
968
+ <member name="M:Azure.Generator.Management.Snippets.JsonResponseDeserialization.BuildDeserializeFromContent(Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Expressions.ValueExpression,System.String,Microsoft.TypeSpec.Generator.Expressions.ValueExpression@)">
969
+ <summary>
970
+ Builds statements that parse <paramref name="content"/> (a <see cref="T:System.BinaryData"/> such as
971
+ <c>result.Content</c>) into a value of <paramref name="type"/>, exposing the result via
972
+ <paramref name="valueVariable"/>.
973
+ </summary>
974
+ </member>
975
+ <member name="M:Azure.Generator.Management.Snippets.JsonResponseDeserialization.BuildDeserializeFromRootElement(Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Expressions.ValueExpression,System.String,Microsoft.TypeSpec.Generator.Expressions.ValueExpression@)">
976
+ <summary>
977
+ Builds statements that deserialize <paramref name="rootElement"/> (a <see cref="T:System.Text.Json.JsonElement"/>)
978
+ into a value of <paramref name="type"/>, guarding against a top-level JSON <c>null</c> body.
979
+ </summary>
980
+ </member>
948
981
  <member name="M:Azure.Generator.Management.Utilities.ArmResourceMetadataExtensions.CreateClientInfosMap(Azure.Generator.Management.Models.ArmResourceMetadata,Microsoft.TypeSpec.Generator.Providers.TypeProvider,System.Collections.Generic.IEnumerable{Azure.Generator.Management.Models.ResourceMethod})">
949
982
  <inheritdoc cref="M:Azure.Generator.Management.Utilities.ArmResourceMetadataExtensions.&lt;G&gt;$3BBD617C8A31A7C0E10A06384A9D1FA5.CreateClientInfosMap(Microsoft.TypeSpec.Generator.Providers.TypeProvider,System.Collections.Generic.IEnumerable{Azure.Generator.Management.Models.ResourceMethod})"/>
950
983
  </member>
@@ -1144,48 +1177,12 @@
1144
1177
  <param name="targetInternalProperty">The internal property to look for in the chain</param>
1145
1178
  <returns>True if the internal property is in the flattening chain</returns>
1146
1179
  </member>
1147
- <member name="M:Azure.Generator.Management.Visitors.InheritableSystemObjectModelVisitor.FixSerializationReturnTypes(Microsoft.TypeSpec.Generator.Providers.ModelProvider)">
1148
- <summary>
1149
- Fixes the return type of serialization override methods (PersistableModelCreateCore,
1150
- JsonModelCreateCore) to use the system base type (e.g., ResourceData) instead of the
1151
- immediate parent type. Without this, the framework generates overrides with
1152
- model.Type.BaseType as the return type, which can produce a covariant return type
1153
- (e.g., returning CustomPatchBase instead of ResourceData). Covariant returns are not
1154
- supported on .NET Framework.
1155
-
1156
- Also fixes the explicit interface implementations (IJsonModel&lt;T&gt;.Create,
1157
- IPersistableModel&lt;T&gt;.Create) that call these methods, adding a cast to the
1158
- model type when the return type was changed. Without this cast, the implicit
1159
- conversion from ResourceData to the model type would fail to compile.
1160
- </summary>
1161
- </member>
1162
- <member name="M:Azure.Generator.Management.Visitors.InheritableSystemObjectModelVisitor.FixExplicitInterfaceCreateMethods(Microsoft.TypeSpec.Generator.ClientModel.Providers.MrwSerializationTypeDefinition)">
1163
- <summary>
1164
- Ensures the explicit interface Create methods (IJsonModel&lt;T&gt;.Create,
1165
- IPersistableModel&lt;T&gt;.Create) cast the result of *Core to the method's declared
1166
- return type T (the discriminated base, e.g., PolyDeviceData). MTG may emit no cast
1167
- or an incorrect cast to the containing class (e.g., (UnknownPolyDevice)); the latter
1168
- throws InvalidCastException at runtime when the discriminator dispatch returns a
1169
- different concrete subtype.
1170
- </summary>
1171
- </member>
1172
- <member name="M:Azure.Generator.Management.Visitors.InheritableSystemObjectModelVisitor.FindSystemBaseType(Microsoft.TypeSpec.Generator.Providers.ModelProvider)">
1180
+ <member name="M:Azure.Generator.Management.Visitors.InheritableSystemObjectModelVisitor.EnsureFrameworkTypeRegistered(Microsoft.TypeSpec.Generator.Providers.SystemObjectModelProvider)">
1173
1181
  <summary>
1174
- Walks up the model hierarchy to find the system base type (e.g., ResourceData)
1175
- that the virtual serialization methods use as their return type.
1176
- </summary>
1177
- </member>
1178
- <member name="M:Azure.Generator.Management.Visitors.InheritableSystemObjectModelVisitor.RemoveDuplicatePropertiesAndStripVirtual(Microsoft.TypeSpec.Generator.Providers.ModelProvider,Microsoft.TypeSpec.Generator.Providers.ModelProvider,System.Collections.Generic.HashSet{System.String})">
1179
- <summary>
1180
- Removes properties with 'new' modifier or matching base property names from the model,
1181
- and strips orphaned virtual modifiers from corresponding base properties.
1182
- </summary>
1183
- </member>
1184
- <member name="M:Azure.Generator.Management.Visitors.InheritableSystemObjectModelVisitor.StripOrphanedVirtualModifiers(Microsoft.TypeSpec.Generator.Providers.ModelProvider,System.Collections.Generic.HashSet{System.String})">
1185
- <summary>
1186
- Strips the virtual modifier from base model properties whose names match removed derived properties.
1187
- When derived properties with new/override modifiers are removed, the corresponding base virtual
1188
- modifier becomes orphaned and should be removed.
1182
+ Registers the framework CSharpType (from KnownManagementTypes) as an alias in the CSharpTypeMap.
1183
+ This allows BuildBaseModelProvider() to find SystemObjectModelProvider when custom code
1184
+ uses a Roslyn-resolved framework CSharpType (which differs from the non-framework CSharpType
1185
+ created by SystemObjectModelProvider).
1189
1186
  </summary>
1190
1187
  </member>
1191
1188
  <member name="T:Azure.Generator.Management.Visitors.ManagedIdentityV3Visitor">
@@ -1197,7 +1194,7 @@
1197
1194
  </member>
1198
1195
  <member name="T:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper">
1199
1196
  <summary>
1200
- Repairs hidden model factory compatibility overloads after flattening changes the current model factory shape.
1197
+ Repairs model factory constructor calls after visitors change the current model shape.
1201
1198
  Used from <see cref="M:Azure.Generator.Management.ManagementClientGenerator.GetWriter(Microsoft.TypeSpec.Generator.Providers.TypeProvider)"/> because some compatibility overloads are
1202
1199
  synthesized from LastContractView after normal visitors have finished.
1203
1200
  </summary>
@@ -1271,7 +1268,7 @@
1271
1268
  Used by <see cref="M:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.TryBuildCompatibilityArgument(Microsoft.TypeSpec.Generator.Providers.MethodProvider,Microsoft.TypeSpec.Generator.Providers.ParameterProvider,System.Collections.Generic.IReadOnlySet{System.String},Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.CompatibilityArgument@)"/> while reconstructing flattened nested model instances.
1272
1269
  </summary>
1273
1270
  </member>
1274
- <member name="M:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.TryGetMethodParameter(Microsoft.TypeSpec.Generator.Providers.MethodProvider,System.String,Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Providers.ParameterProvider@)">
1271
+ <member name="M:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.TryGetMethodParameter(Microsoft.TypeSpec.Generator.Providers.MethodProvider,System.String,Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Providers.PropertyProvider,Microsoft.TypeSpec.Generator.Providers.ParameterProvider@)">
1275
1272
  <summary>
1276
1273
  Finds an old overload parameter by name and compatible type.
1277
1274
  Inputs are the old method, expected parameter name, and expected type; output is the matching parameter.
@@ -1282,7 +1279,7 @@
1282
1279
  <summary>
1283
1280
  Determines whether an old parameter can be used for a current constructor parameter.
1284
1281
  Inputs are old and expected types; output is whether direct assignment or helper conversion can make them compatible.
1285
- Used by <see cref="M:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.TryGetMethodParameter(Microsoft.TypeSpec.Generator.Providers.MethodProvider,System.String,Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Providers.ParameterProvider@)"/> to allow nullable/value and list-interface shape differences.
1282
+ Used by <see cref="M:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.TryGetMethodParameter(Microsoft.TypeSpec.Generator.Providers.MethodProvider,System.String,Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Providers.PropertyProvider,Microsoft.TypeSpec.Generator.Providers.ParameterProvider@)"/> to allow nullable/value and list-interface shape differences.
1286
1283
  </summary>
1287
1284
  </member>
1288
1285
  <member name="M:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.AreCompatibleListTypes(Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Primitives.CSharpType)">
@@ -1338,6 +1335,9 @@
1338
1335
  <member name="M:Azure.Generator.Management.Visitors.RestClientVisitor.VisitType(Microsoft.TypeSpec.Generator.Providers.TypeProvider)">
1339
1336
  <inheritdoc/>
1340
1337
  </member>
1338
+ <member name="M:Azure.Generator.Management.Visitors.SerializationVisitor.VisitType(Microsoft.TypeSpec.Generator.Providers.TypeProvider)">
1339
+ <inheritdoc/>
1340
+ </member>
1341
1341
  <member name="M:Azure.Generator.Management.Visitors.SerializationVisitor.VisitMethod(Microsoft.TypeSpec.Generator.Providers.MethodProvider)">
1342
1342
  <inheritdoc/>
1343
1343
  </member>
@@ -6,7 +6,7 @@
6
6
  "compilationOptions": {},
7
7
  "targets": {
8
8
  ".NETCoreApp,Version=v10.0": {
9
- "Azure.Generator.Management/1.0.0-alpha.20260601.1": {
9
+ "Azure.Generator.Management/1.0.0-alpha.20260604.1": {
10
10
  "dependencies": {
11
11
  "Azure.Core": "1.57.0",
12
12
  "Azure.Generator": "1.0.0-alpha.20260516.2",
@@ -729,7 +729,7 @@
729
729
  }
730
730
  },
731
731
  "libraries": {
732
- "Azure.Generator.Management/1.0.0-alpha.20260601.1": {
732
+ "Azure.Generator.Management/1.0.0-alpha.20260604.1": {
733
733
  "type": "project",
734
734
  "serviceable": false,
735
735
  "sha512": ""
@@ -800,21 +800,9 @@
800
800
  This uses a simpler TypeProvider-based implementation without inheriting from CollectionResultDefinition.
801
801
  </summary>
802
802
  </member>
803
- <member name="P:Azure.Generator.Management.Providers.InheritableSystemObjectModelProvider.IsSystemBase">
803
+ <member name="T:Azure.Generator.Management.Providers.ManagementModelProvider">
804
804
  <summary>
805
- True when this provider represents the system base type itself (e.g., TrackedResourceData).
806
- False when it represents a derived model whose base type is a system type.
807
- </summary>
808
- </member>
809
- <member name="M:Azure.Generator.Management.Providers.InheritableSystemObjectModelProvider.CreateSystemBase(System.Type,Microsoft.TypeSpec.Generator.Input.InputModelType)">
810
- <summary>
811
- Creates a provider representing the system base type itself (e.g., TrackedResource → TrackedResourceData).
812
- </summary>
813
- </member>
814
- <member name="M:Azure.Generator.Management.Providers.InheritableSystemObjectModelProvider.CreateDerived(Microsoft.TypeSpec.Generator.Input.InputModelType,Microsoft.TypeSpec.Generator.Primitives.CSharpType)">
815
- <summary>
816
- Creates a provider for a model that extends an inheritable system type.
817
- Overrides BuildBaseType() to return the correct framework CSharpType.
805
+ ModelProvider used for non-resource management-plane models.
818
806
  </summary>
819
807
  </member>
820
808
  <member name="M:Azure.Generator.Management.Providers.MockableArmClientProvider.TryCreate(System.Collections.Generic.IReadOnlyList{Azure.Generator.Management.Providers.ResourceClientProvider},System.Collections.Generic.IReadOnlyList{Azure.Generator.Management.Models.NonResourceMethod})">
@@ -901,6 +889,23 @@
901
889
  <returns></returns>
902
890
  <exception cref="T:System.NotSupportedException"></exception>
903
891
  </member>
892
+ <member name="T:Azure.Generator.Management.Providers.ResourceDataModelProvider">
893
+ <summary>
894
+ ModelProvider used for Azure resource data classes.
895
+ </summary>
896
+ <remarks>
897
+ Overrides identity-shaping members (<see cref="M:Azure.Generator.Management.Providers.ResourceDataModelProvider.BuildName"/>, <see cref="M:Azure.Generator.Management.Providers.ResourceDataModelProvider.BuildNamespace"/>,
898
+ <see cref="M:Azure.Generator.Management.Providers.ResourceDataModelProvider.BuildRelativeFilePath"/>) so that resource data classes are constructed with the
899
+ final name, namespace, and file path from the very first <c>Type</c> access.
900
+ <para>
901
+ In particular, overriding <see cref="M:Azure.Generator.Management.Providers.ResourceDataModelProvider.BuildName"/> to append <c>"Data"</c> is the only way to
902
+ prevent a user's resource-client customization partial (e.g.
903
+ <c>partial class FooResource : ArmResource</c>) from polluting <c>CustomCodeView.BaseType</c>:
904
+ once <c>Type</c> is constructed, the base type is captured into the immutable
905
+ <c>CSharpType._baseType</c>, and no subsequent visitor-driven rename can rewrite it.
906
+ </para>
907
+ </remarks>
908
+ </member>
904
909
  <member name="M:Azure.Generator.Management.Providers.ResourceSerializationProvider.GetInstantiableDataType">
905
910
  <summary>
906
911
  Gets the concrete type to use for instantiating the DataDeserializationInstance.
@@ -945,6 +950,34 @@
945
950
  <param name="id"></param>
946
951
  <returns></returns>
947
952
  </member>
953
+ <member name="T:Azure.Generator.Management.Snippets.JsonResponseDeserialization">
954
+ <summary>
955
+ Builds AOT-safe inline JSON deserialization for framework collection response types
956
+ (e.g. <c>IDictionary&lt;string, BinaryData&gt;</c> produced from a TypeSpec <c>Record&lt;unknown&gt;</c>).
957
+ These types do not implement <see cref="T:System.ClientModel.Primitives.IPersistableModel`1"/>, so
958
+ <c>ModelReaderWriter.Read&lt;T&gt;</c> cannot be used; instead the JSON payload is parsed and the
959
+ collection is constructed with explicit <c>foreach</c> loops.
960
+ </summary>
961
+ </member>
962
+ <member name="M:Azure.Generator.Management.Snippets.JsonResponseDeserialization.IsInlineJsonDeserializable(Microsoft.TypeSpec.Generator.Primitives.CSharpType)">
963
+ <summary>
964
+ Returns <c>true</c> when <paramref name="type"/> is a framework collection (dictionary or list)
965
+ that must be deserialized with inline JSON rather than <c>ModelReaderWriter.Read&lt;T&gt;</c>.
966
+ </summary>
967
+ </member>
968
+ <member name="M:Azure.Generator.Management.Snippets.JsonResponseDeserialization.BuildDeserializeFromContent(Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Expressions.ValueExpression,System.String,Microsoft.TypeSpec.Generator.Expressions.ValueExpression@)">
969
+ <summary>
970
+ Builds statements that parse <paramref name="content"/> (a <see cref="T:System.BinaryData"/> such as
971
+ <c>result.Content</c>) into a value of <paramref name="type"/>, exposing the result via
972
+ <paramref name="valueVariable"/>.
973
+ </summary>
974
+ </member>
975
+ <member name="M:Azure.Generator.Management.Snippets.JsonResponseDeserialization.BuildDeserializeFromRootElement(Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Expressions.ValueExpression,System.String,Microsoft.TypeSpec.Generator.Expressions.ValueExpression@)">
976
+ <summary>
977
+ Builds statements that deserialize <paramref name="rootElement"/> (a <see cref="T:System.Text.Json.JsonElement"/>)
978
+ into a value of <paramref name="type"/>, guarding against a top-level JSON <c>null</c> body.
979
+ </summary>
980
+ </member>
948
981
  <member name="M:Azure.Generator.Management.Utilities.ArmResourceMetadataExtensions.CreateClientInfosMap(Azure.Generator.Management.Models.ArmResourceMetadata,Microsoft.TypeSpec.Generator.Providers.TypeProvider,System.Collections.Generic.IEnumerable{Azure.Generator.Management.Models.ResourceMethod})">
949
982
  <inheritdoc cref="M:Azure.Generator.Management.Utilities.ArmResourceMetadataExtensions.&lt;G&gt;$3BBD617C8A31A7C0E10A06384A9D1FA5.CreateClientInfosMap(Microsoft.TypeSpec.Generator.Providers.TypeProvider,System.Collections.Generic.IEnumerable{Azure.Generator.Management.Models.ResourceMethod})"/>
950
983
  </member>
@@ -1144,48 +1177,12 @@
1144
1177
  <param name="targetInternalProperty">The internal property to look for in the chain</param>
1145
1178
  <returns>True if the internal property is in the flattening chain</returns>
1146
1179
  </member>
1147
- <member name="M:Azure.Generator.Management.Visitors.InheritableSystemObjectModelVisitor.FixSerializationReturnTypes(Microsoft.TypeSpec.Generator.Providers.ModelProvider)">
1148
- <summary>
1149
- Fixes the return type of serialization override methods (PersistableModelCreateCore,
1150
- JsonModelCreateCore) to use the system base type (e.g., ResourceData) instead of the
1151
- immediate parent type. Without this, the framework generates overrides with
1152
- model.Type.BaseType as the return type, which can produce a covariant return type
1153
- (e.g., returning CustomPatchBase instead of ResourceData). Covariant returns are not
1154
- supported on .NET Framework.
1155
-
1156
- Also fixes the explicit interface implementations (IJsonModel&lt;T&gt;.Create,
1157
- IPersistableModel&lt;T&gt;.Create) that call these methods, adding a cast to the
1158
- model type when the return type was changed. Without this cast, the implicit
1159
- conversion from ResourceData to the model type would fail to compile.
1160
- </summary>
1161
- </member>
1162
- <member name="M:Azure.Generator.Management.Visitors.InheritableSystemObjectModelVisitor.FixExplicitInterfaceCreateMethods(Microsoft.TypeSpec.Generator.ClientModel.Providers.MrwSerializationTypeDefinition)">
1163
- <summary>
1164
- Ensures the explicit interface Create methods (IJsonModel&lt;T&gt;.Create,
1165
- IPersistableModel&lt;T&gt;.Create) cast the result of *Core to the method's declared
1166
- return type T (the discriminated base, e.g., PolyDeviceData). MTG may emit no cast
1167
- or an incorrect cast to the containing class (e.g., (UnknownPolyDevice)); the latter
1168
- throws InvalidCastException at runtime when the discriminator dispatch returns a
1169
- different concrete subtype.
1170
- </summary>
1171
- </member>
1172
- <member name="M:Azure.Generator.Management.Visitors.InheritableSystemObjectModelVisitor.FindSystemBaseType(Microsoft.TypeSpec.Generator.Providers.ModelProvider)">
1180
+ <member name="M:Azure.Generator.Management.Visitors.InheritableSystemObjectModelVisitor.EnsureFrameworkTypeRegistered(Microsoft.TypeSpec.Generator.Providers.SystemObjectModelProvider)">
1173
1181
  <summary>
1174
- Walks up the model hierarchy to find the system base type (e.g., ResourceData)
1175
- that the virtual serialization methods use as their return type.
1176
- </summary>
1177
- </member>
1178
- <member name="M:Azure.Generator.Management.Visitors.InheritableSystemObjectModelVisitor.RemoveDuplicatePropertiesAndStripVirtual(Microsoft.TypeSpec.Generator.Providers.ModelProvider,Microsoft.TypeSpec.Generator.Providers.ModelProvider,System.Collections.Generic.HashSet{System.String})">
1179
- <summary>
1180
- Removes properties with 'new' modifier or matching base property names from the model,
1181
- and strips orphaned virtual modifiers from corresponding base properties.
1182
- </summary>
1183
- </member>
1184
- <member name="M:Azure.Generator.Management.Visitors.InheritableSystemObjectModelVisitor.StripOrphanedVirtualModifiers(Microsoft.TypeSpec.Generator.Providers.ModelProvider,System.Collections.Generic.HashSet{System.String})">
1185
- <summary>
1186
- Strips the virtual modifier from base model properties whose names match removed derived properties.
1187
- When derived properties with new/override modifiers are removed, the corresponding base virtual
1188
- modifier becomes orphaned and should be removed.
1182
+ Registers the framework CSharpType (from KnownManagementTypes) as an alias in the CSharpTypeMap.
1183
+ This allows BuildBaseModelProvider() to find SystemObjectModelProvider when custom code
1184
+ uses a Roslyn-resolved framework CSharpType (which differs from the non-framework CSharpType
1185
+ created by SystemObjectModelProvider).
1189
1186
  </summary>
1190
1187
  </member>
1191
1188
  <member name="T:Azure.Generator.Management.Visitors.ManagedIdentityV3Visitor">
@@ -1197,7 +1194,7 @@
1197
1194
  </member>
1198
1195
  <member name="T:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper">
1199
1196
  <summary>
1200
- Repairs hidden model factory compatibility overloads after flattening changes the current model factory shape.
1197
+ Repairs model factory constructor calls after visitors change the current model shape.
1201
1198
  Used from <see cref="M:Azure.Generator.Management.ManagementClientGenerator.GetWriter(Microsoft.TypeSpec.Generator.Providers.TypeProvider)"/> because some compatibility overloads are
1202
1199
  synthesized from LastContractView after normal visitors have finished.
1203
1200
  </summary>
@@ -1271,7 +1268,7 @@
1271
1268
  Used by <see cref="M:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.TryBuildCompatibilityArgument(Microsoft.TypeSpec.Generator.Providers.MethodProvider,Microsoft.TypeSpec.Generator.Providers.ParameterProvider,System.Collections.Generic.IReadOnlySet{System.String},Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.CompatibilityArgument@)"/> while reconstructing flattened nested model instances.
1272
1269
  </summary>
1273
1270
  </member>
1274
- <member name="M:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.TryGetMethodParameter(Microsoft.TypeSpec.Generator.Providers.MethodProvider,System.String,Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Providers.ParameterProvider@)">
1271
+ <member name="M:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.TryGetMethodParameter(Microsoft.TypeSpec.Generator.Providers.MethodProvider,System.String,Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Providers.PropertyProvider,Microsoft.TypeSpec.Generator.Providers.ParameterProvider@)">
1275
1272
  <summary>
1276
1273
  Finds an old overload parameter by name and compatible type.
1277
1274
  Inputs are the old method, expected parameter name, and expected type; output is the matching parameter.
@@ -1282,7 +1279,7 @@
1282
1279
  <summary>
1283
1280
  Determines whether an old parameter can be used for a current constructor parameter.
1284
1281
  Inputs are old and expected types; output is whether direct assignment or helper conversion can make them compatible.
1285
- Used by <see cref="M:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.TryGetMethodParameter(Microsoft.TypeSpec.Generator.Providers.MethodProvider,System.String,Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Providers.ParameterProvider@)"/> to allow nullable/value and list-interface shape differences.
1282
+ Used by <see cref="M:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.TryGetMethodParameter(Microsoft.TypeSpec.Generator.Providers.MethodProvider,System.String,Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Providers.PropertyProvider,Microsoft.TypeSpec.Generator.Providers.ParameterProvider@)"/> to allow nullable/value and list-interface shape differences.
1286
1283
  </summary>
1287
1284
  </member>
1288
1285
  <member name="M:Azure.Generator.Management.Visitors.ModelFactoryBackwardCompatHelper.AreCompatibleListTypes(Microsoft.TypeSpec.Generator.Primitives.CSharpType,Microsoft.TypeSpec.Generator.Primitives.CSharpType)">
@@ -1338,6 +1335,9 @@
1338
1335
  <member name="M:Azure.Generator.Management.Visitors.RestClientVisitor.VisitType(Microsoft.TypeSpec.Generator.Providers.TypeProvider)">
1339
1336
  <inheritdoc/>
1340
1337
  </member>
1338
+ <member name="M:Azure.Generator.Management.Visitors.SerializationVisitor.VisitType(Microsoft.TypeSpec.Generator.Providers.TypeProvider)">
1339
+ <inheritdoc/>
1340
+ </member>
1341
1341
  <member name="M:Azure.Generator.Management.Visitors.SerializationVisitor.VisitMethod(Microsoft.TypeSpec.Generator.Providers.MethodProvider)">
1342
1342
  <inheritdoc/>
1343
1343
  </member>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-typespec/http-client-csharp-mgmt",
3
- "version": "1.0.0-alpha.20260601.1",
3
+ "version": "1.0.0-alpha.20260604.1",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec library for emitting Azure management libraries for C#.",
6
6
  "readme": "https://github.com/Azure/azure-sdk-for-net/blob/main/eng/packages/http-client-csharp-mgmt/README.md",