diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/ModelSerializationExtensionsDefinition.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/ModelSerializationExtensionsDefinition.cs index 8b1cd648e81..d2458620191 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/ModelSerializationExtensionsDefinition.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/ModelSerializationExtensionsDefinition.cs @@ -692,6 +692,18 @@ private MethodProvider BuildWriteObjectValueMethodGeneric() // int case BuildWriteObjectValueSwitchCase(typeof(int), "i", i => new MethodBodyStatement[] { writer.WriteNumberValue(i), Break }), + // short case + BuildWriteObjectValueSwitchCase(typeof(short), "shortValue", + shortValue => new MethodBodyStatement[] { writer.WriteNumberValue(shortValue), Break }), + // ushort case + BuildWriteObjectValueSwitchCase(typeof(ushort), "ushortValue", + ushortValue => new MethodBodyStatement[] { writer.WriteNumberValue(ushortValue), Break }), + // uint case + BuildWriteObjectValueSwitchCase(typeof(uint), "uintValue", + uintValue => new MethodBodyStatement[] { writer.WriteNumberValue(uintValue), Break }), + // ulong case + BuildWriteObjectValueSwitchCase(typeof(ulong), "ulongValue", + ulongValue => new MethodBodyStatement[] { writer.WriteNumberValue(ulongValue), Break }), // decimal case BuildWriteObjectValueSwitchCase(typeof(decimal), "d", dec => new MethodBodyStatement[] { writer.WriteNumberValue(dec), Break }), diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/MrwSerializationTypeDefinition.Xml.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/MrwSerializationTypeDefinition.Xml.cs index f7b786d3e70..928c0a7f1b5 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/MrwSerializationTypeDefinition.Xml.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/MrwSerializationTypeDefinition.Xml.cs @@ -486,6 +486,7 @@ private static ValueExpression CreateXmlSerializePrimitiveExpression(ValueExpres { return valueType.FrameworkType switch { + Type t when t == typeof(ulong) => value.CastTo(typeof(decimal)), Type t when t == typeof(DateTimeOffset) => serializationFormat switch { _ => value.Invoke(nameof(ToString), Literal(serializationFormat.ToFormatSpecifier())) diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/MrwSerializationTypeDefinition.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/MrwSerializationTypeDefinition.cs index 88cf732630b..897b0fae800 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/MrwSerializationTypeDefinition.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/MrwSerializationTypeDefinition.cs @@ -2753,8 +2753,11 @@ Type t when ValueTypeIsInt(t) => private static bool ValueTypeIsInt(Type valueType) => valueType == typeof(long) || + valueType == typeof(ulong) || valueType == typeof(int) || + valueType == typeof(uint) || valueType == typeof(short) || + valueType == typeof(ushort) || valueType == typeof(sbyte) || valueType == typeof(byte); @@ -2772,8 +2775,11 @@ private static bool ValueTypeIsNumber(Type valueType) => _ => type switch { Type t when t == typeof(long) => element.GetInt64(), + Type t when t == typeof(ulong) => element.GetUInt64(), Type t when t == typeof(int) => element.GetInt32(), + Type t when t == typeof(uint) => element.GetUInt32(), Type t when t == typeof(short) => element.GetInt16(), + Type t when t == typeof(ushort) => element.GetUInt16(), Type t when t == typeof(sbyte) => element.GetSByte(), Type t when t == typeof(byte) => element.GetByte(), _ => throw new NotSupportedException($"Framework type {type} is not int.") diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Snippets/JsonElementSnippets.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Snippets/JsonElementSnippets.cs index f320ef94429..6f89e1405a1 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Snippets/JsonElementSnippets.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Snippets/JsonElementSnippets.cs @@ -32,8 +32,11 @@ public static class JsonElementSnippets public static ValueExpression GetSByte(this ScopedApi jsonElement) => jsonElement.Invoke(nameof(JsonElement.GetSByte)); public static ValueExpression GetByte(this ScopedApi jsonElement) => jsonElement.Invoke(nameof(JsonElement.GetByte)); public static ValueExpression GetInt16(this ScopedApi jsonElement) => jsonElement.Invoke(nameof(JsonElement.GetInt16)); + public static ValueExpression GetUInt16(this ScopedApi jsonElement) => jsonElement.Invoke(nameof(JsonElement.GetUInt16)); public static ValueExpression GetInt32(this ScopedApi jsonElement) => jsonElement.Invoke(nameof(JsonElement.GetInt32)); + public static ValueExpression GetUInt32(this ScopedApi jsonElement) => jsonElement.Invoke(nameof(JsonElement.GetUInt32)); public static ValueExpression GetInt64(this ScopedApi jsonElement) => jsonElement.Invoke(nameof(JsonElement.GetInt64)); + public static ValueExpression GetUInt64(this ScopedApi jsonElement) => jsonElement.Invoke(nameof(JsonElement.GetUInt64)); public static ScopedApi GetRawText(this ScopedApi jsonElement) => jsonElement.Invoke(nameof(JsonElement.GetRawText)).As(); public static ValueExpression GetSingle(this ScopedApi jsonElement) => jsonElement.Invoke(nameof(JsonElement.GetSingle)); public static ScopedApi GetString(this ScopedApi jsonElement) => jsonElement.Invoke(nameof(JsonElement.GetString)).As(); diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/Definitions/TestData/ModelSerializationExtensionsDefinitionTests/ValidateWriteObjectValueIncludesFileBinaryContentCase.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/Definitions/TestData/ModelSerializationExtensionsDefinitionTests/ValidateWriteObjectValueIncludesFileBinaryContentCase.cs index 724005487cd..c2e19479062 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/Definitions/TestData/ModelSerializationExtensionsDefinitionTests/ValidateWriteObjectValueIncludesFileBinaryContentCase.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/Definitions/TestData/ModelSerializationExtensionsDefinitionTests/ValidateWriteObjectValueIncludesFileBinaryContentCase.cs @@ -34,6 +34,18 @@ public static void WriteObjectValue(this global::System.Text.Json.Utf8JsonWri case int i: writer.WriteNumberValue(i); break; + case short shortValue: + writer.WriteNumberValue(shortValue); + break; + case ushort ushortValue: + writer.WriteNumberValue(ushortValue); + break; + case uint uintValue: + writer.WriteNumberValue(uintValue); + break; + case ulong ulongValue: + writer.WriteNumberValue(ulongValue); + break; case decimal d: writer.WriteNumberValue(d); break; diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/Definitions/TestData/ModelSerializationExtensionsDefinitionTests/ValidateWriteObjectValueXmlIncludesFileBinaryContentCase.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/Definitions/TestData/ModelSerializationExtensionsDefinitionTests/ValidateWriteObjectValueXmlIncludesFileBinaryContentCase.cs index 7d613096a1d..2750bd7a310 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/Definitions/TestData/ModelSerializationExtensionsDefinitionTests/ValidateWriteObjectValueXmlIncludesFileBinaryContentCase.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/Definitions/TestData/ModelSerializationExtensionsDefinitionTests/ValidateWriteObjectValueXmlIncludesFileBinaryContentCase.cs @@ -36,6 +36,18 @@ public static void WriteObjectValue(this global::System.Text.Json.Utf8JsonWri case int i: writer.WriteNumberValue(i); break; + case short shortValue: + writer.WriteNumberValue(shortValue); + break; + case ushort ushortValue: + writer.WriteNumberValue(ushortValue); + break; + case uint uintValue: + writer.WriteNumberValue(uintValue); + break; + case ulong ulongValue: + writer.WriteNumberValue(ulongValue); + break; case decimal d: writer.WriteNumberValue(d); break; diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/MrwSerializationTypeDefinitions/MrwSerializationTypeDefinitionTests.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/MrwSerializationTypeDefinitions/MrwSerializationTypeDefinitionTests.cs index 7c8508c273e..800a7b3e4de 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/MrwSerializationTypeDefinitions/MrwSerializationTypeDefinitionTests.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/MrwSerializationTypeDefinitions/MrwSerializationTypeDefinitionTests.cs @@ -950,13 +950,13 @@ public void TestIntSerializationStatement( InputPrimitiveTypeKind.Integer, InputPrimitiveTypeKind.SafeInt, InputPrimitiveTypeKind.Int8, - // InputPrimitiveTypeKind.Int16, TODO: add them back when we decide the exact corresponding type + InputPrimitiveTypeKind.Int16, InputPrimitiveTypeKind.Int32, InputPrimitiveTypeKind.Int64, - InputPrimitiveTypeKind.UInt8 - // InputPrimitiveTypeKind.UInt16, - // InputPrimitiveTypeKind.UInt32, - // InputPrimitiveTypeKind.UInt64 + InputPrimitiveTypeKind.UInt8, + InputPrimitiveTypeKind.UInt16, + InputPrimitiveTypeKind.UInt32, + InputPrimitiveTypeKind.UInt64 )] InputPrimitiveTypeKind kind, [Values("string", null)] string encode) { @@ -1010,11 +1010,17 @@ public void TestBooleanDeserialization(string? encode) [TestCase(typeof(long), SerializationFormat.Int_String, ExpectedResult = "long.Parse(foo.GetString())")] [TestCase(typeof(int), SerializationFormat.Int_String, ExpectedResult = "int.Parse(foo.GetString())")] [TestCase(typeof(short), SerializationFormat.Int_String, ExpectedResult = "short.Parse(foo.GetString())")] + [TestCase(typeof(ushort), SerializationFormat.Int_String, ExpectedResult = "ushort.Parse(foo.GetString())")] + [TestCase(typeof(uint), SerializationFormat.Int_String, ExpectedResult = "uint.Parse(foo.GetString())")] + [TestCase(typeof(ulong), SerializationFormat.Int_String, ExpectedResult = "ulong.Parse(foo.GetString())")] [TestCase(typeof(byte), SerializationFormat.Int_String, ExpectedResult = "byte.Parse(foo.GetString())")] [TestCase(typeof(sbyte), SerializationFormat.Int_String, ExpectedResult = "sbyte.Parse(foo.GetString())")] [TestCase(typeof(long), SerializationFormat.Default, ExpectedResult = "foo.GetInt64()")] [TestCase(typeof(int), SerializationFormat.Default, ExpectedResult = "foo.GetInt32()")] [TestCase(typeof(short), SerializationFormat.Default, ExpectedResult = "foo.GetInt16()")] + [TestCase(typeof(ushort), SerializationFormat.Default, ExpectedResult = "foo.GetUInt16()")] + [TestCase(typeof(uint), SerializationFormat.Default, ExpectedResult = "foo.GetUInt32()")] + [TestCase(typeof(ulong), SerializationFormat.Default, ExpectedResult = "foo.GetUInt64()")] [TestCase(typeof(byte), SerializationFormat.Default, ExpectedResult = "foo.GetByte()")] [TestCase(typeof(sbyte), SerializationFormat.Default, ExpectedResult = "foo.GetSByte()")] public string TestIntDeserializeExpression(Type type, SerializationFormat format) diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/MrwSerializationTypeDefinitions/XmlSerializationTests.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/MrwSerializationTypeDefinitions/XmlSerializationTests.cs index c223926ab91..1d47c42c83c 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/MrwSerializationTypeDefinitions/XmlSerializationTests.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/MrwSerializationTypeDefinitions/XmlSerializationTests.cs @@ -770,6 +770,10 @@ public async Task PersistableModelWriteCoreHandlesJsonAndXmlFormats() } [TestCase(typeof(int), SerializationFormat.Default, ExpectedResult = "writer.WriteValue(value);\n")] + [TestCase(typeof(short), SerializationFormat.Default, ExpectedResult = "writer.WriteValue(value);\n")] + [TestCase(typeof(ushort), SerializationFormat.Default, ExpectedResult = "writer.WriteValue(value);\n")] + [TestCase(typeof(uint), SerializationFormat.Default, ExpectedResult = "writer.WriteValue(value);\n")] + [TestCase(typeof(ulong), SerializationFormat.Default, ExpectedResult = "writer.WriteValue(((decimal)value));\n")] [TestCase(typeof(string), SerializationFormat.Default, ExpectedResult = "writer.WriteValue(value);\n")] [TestCase(typeof(bool), SerializationFormat.Default, ExpectedResult = "writer.WriteValue(value);\n")] [TestCase(typeof(long), SerializationFormat.Default, ExpectedResult = "writer.WriteValue(value);\n")] diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/src/TypeFactory.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/src/TypeFactory.cs index 1cf21325f0e..6bf99b96623 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/src/TypeFactory.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/src/TypeFactory.cs @@ -203,8 +203,12 @@ protected virtual bool IsLastContractModelBasePropertyCompatibleCore( InputPrimitiveTypeKind.Float64 => typeof(double), InputPrimitiveTypeKind.Int8 => typeof(sbyte), InputPrimitiveTypeKind.UInt8 => typeof(byte), + InputPrimitiveTypeKind.Int16 => typeof(short), + InputPrimitiveTypeKind.UInt16 => typeof(ushort), InputPrimitiveTypeKind.Int32 => typeof(int), + InputPrimitiveTypeKind.UInt32 => typeof(uint), InputPrimitiveTypeKind.Int64 => typeof(long), + InputPrimitiveTypeKind.UInt64 => typeof(ulong), InputPrimitiveTypeKind.SafeInt => typeof(long), InputPrimitiveTypeKind.Integer => typeof(long), // in typespec, integer is the base type of int related types, see type relation: https://typespec.io/docs/language-basics/type-relations InputPrimitiveTypeKind.Float => typeof(double), // in typespec, float is the base type of float32 and float64, see type relation: https://typespec.io/docs/language-basics/type-relations diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/test/TypeFactoryTests.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/test/TypeFactoryTests.cs index 1a57a7029a3..ab522763a9c 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/test/TypeFactoryTests.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/test/TypeFactoryTests.cs @@ -2,6 +2,7 @@ // Licensed under the MIT License. using System; +using System.Collections.Generic; using System.Net; using System.Text.Json; using System.Threading.Tasks; @@ -131,6 +132,35 @@ public void CreateEnum_WithDeclaringType() Assert.IsFalse(ReferenceEquals(actual3, actual2)); } + [TestCase(InputPrimitiveTypeKind.Int8, typeof(sbyte))] + [TestCase(InputPrimitiveTypeKind.Int16, typeof(short))] + [TestCase(InputPrimitiveTypeKind.Int32, typeof(int))] + [TestCase(InputPrimitiveTypeKind.Int64, typeof(long))] + [TestCase(InputPrimitiveTypeKind.UInt8, typeof(byte))] + [TestCase(InputPrimitiveTypeKind.UInt16, typeof(ushort))] + [TestCase(InputPrimitiveTypeKind.UInt32, typeof(uint))] + [TestCase(InputPrimitiveTypeKind.UInt64, typeof(ulong))] + [TestCase(InputPrimitiveTypeKind.String, typeof(string))] + [TestCase(InputPrimitiveTypeKind.Boolean, typeof(bool))] + [TestCase(InputPrimitiveTypeKind.Unknown, typeof(BinaryData))] + public void CreateCSharpType_PrimitiveAndCollections(InputPrimitiveTypeKind kind, Type expectedType) + { + var name = kind.ToString().ToLowerInvariant(); + var input = new InputPrimitiveType(kind, name, $"TypeSpec.{name}"); + var factory = CodeModelGenerator.Instance.TypeFactory; + + Assert.Multiple(() => + { + Assert.AreEqual(new CSharpType(expectedType), factory.CreateCSharpType(input)); + Assert.AreEqual(new CSharpType(expectedType, isNullable: true), + factory.CreateCSharpType(new InputNullableType(input))); + Assert.AreEqual(new CSharpType(typeof(IList<>), expectedType), + factory.CreateCSharpType(new InputArrayType("Array", "TypeSpec.Array", input))); + Assert.AreEqual(new CSharpType(typeof(IDictionary<,>), typeof(string), expectedType), + factory.CreateCSharpType(new InputDictionaryType("Record", InputPrimitiveType.String, input))); + }); + } + [Test] public void IntSerializationFormat([Values( InputPrimitiveTypeKind.Integer, diff --git a/packages/http-client-csharp/generator/TestProjects/Local.Tests/ModelSerializationExtensionsTests.cs b/packages/http-client-csharp/generator/TestProjects/Local.Tests/ModelSerializationExtensionsTests.cs index 053fdf023b0..4a0f2033518 100644 --- a/packages/http-client-csharp/generator/TestProjects/Local.Tests/ModelSerializationExtensionsTests.cs +++ b/packages/http-client-csharp/generator/TestProjects/Local.Tests/ModelSerializationExtensionsTests.cs @@ -15,6 +15,25 @@ namespace TestProjects.Local.Tests { public class ModelSerializationExtensionsTests { + [TestCase(short.MinValue, "-32768")] + [TestCase(short.MaxValue, "32767")] + [TestCase(ushort.MinValue, "0")] + [TestCase(ushort.MaxValue, "65535")] + [TestCase(uint.MinValue, "0")] + [TestCase(uint.MaxValue, "4294967295")] + [TestCase(ulong.MinValue, "0")] + [TestCase(ulong.MaxValue, "18446744073709551615")] + public void WriteObjectValuePreservesIntegerRange(object value, string expected) + { + var buffer = new ArrayBufferWriter(); + using var writer = new Utf8JsonWriter(buffer); + + writer.WriteObjectValue(value); + writer.Flush(); + + Assert.AreEqual(expected, Encoding.UTF8.GetString(buffer.WrittenSpan)); + } + [TestCase("{ \"text\": \"こんにちは 🌍\", \"escaped\": \"\\u0061\" }")] [TestCase("[1, true, null, {\"nested\": []}]")] [TestCase("\"hello\"")] diff --git a/packages/http-client-csharp/generator/TestProjects/Local/Sample-TypeSpec/src/Generated/Internal/ModelSerializationExtensions.cs b/packages/http-client-csharp/generator/TestProjects/Local/Sample-TypeSpec/src/Generated/Internal/ModelSerializationExtensions.cs index 019f4df00e1..6188b0f9ac7 100644 --- a/packages/http-client-csharp/generator/TestProjects/Local/Sample-TypeSpec/src/Generated/Internal/ModelSerializationExtensions.cs +++ b/packages/http-client-csharp/generator/TestProjects/Local/Sample-TypeSpec/src/Generated/Internal/ModelSerializationExtensions.cs @@ -263,6 +263,18 @@ public static void WriteObjectValue(this Utf8JsonWriter writer, T value, Mode case int i: writer.WriteNumberValue(i); break; + case short shortValue: + writer.WriteNumberValue(shortValue); + break; + case ushort ushortValue: + writer.WriteNumberValue(ushortValue); + break; + case uint uintValue: + writer.WriteNumberValue(uintValue); + break; + case ulong ulongValue: + writer.WriteNumberValue(ulongValue); + break; case decimal d: writer.WriteNumberValue(d); break; diff --git a/packages/http-client-csharp/generator/TestProjects/Spector.Tests/Http/Encode/Numeric/EncodeNumericTests.cs b/packages/http-client-csharp/generator/TestProjects/Spector.Tests/Http/Encode/Numeric/EncodeNumericTests.cs index fdf7c1f9d84..1937bc1814d 100644 --- a/packages/http-client-csharp/generator/TestProjects/Spector.Tests/Http/Encode/Numeric/EncodeNumericTests.cs +++ b/packages/http-client-csharp/generator/TestProjects/Spector.Tests/Http/Encode/Numeric/EncodeNumericTests.cs @@ -23,10 +23,10 @@ public Task Encode_Numeric_Property_uint32AsStringOptional() => Test(async (host { var response = await new NumericClient(host, null).GetPropertyClient().Uint32AsStringOptionalAsync(new Uint32AsStringProperty() { - Value = "1" + Value = 1 }); Assert.AreEqual(200, response.GetRawResponse().Status); - Assert.AreEqual("1", response.Value.Value); + Assert.AreEqual(1u, response.Value.Value); }); [SpectorTest] diff --git a/packages/http-client-csharp/generator/TestProjects/Spector/http/encode/numeric/src/Generated/EncodeNumericModelFactory.cs b/packages/http-client-csharp/generator/TestProjects/Spector/http/encode/numeric/src/Generated/EncodeNumericModelFactory.cs index f04e857b397..7c842eed2d1 100644 --- a/packages/http-client-csharp/generator/TestProjects/Spector/http/encode/numeric/src/Generated/EncodeNumericModelFactory.cs +++ b/packages/http-client-csharp/generator/TestProjects/Spector/http/encode/numeric/src/Generated/EncodeNumericModelFactory.cs @@ -10,7 +10,7 @@ public static partial class EncodeNumericModelFactory { public static SafeintAsStringProperty SafeintAsStringProperty(long value = default) => throw null; - public static Uint32AsStringProperty Uint32AsStringProperty(object value = default) => throw null; + public static Uint32AsStringProperty Uint32AsStringProperty(uint? value = default) => throw null; public static Uint8AsStringProperty Uint8AsStringProperty(byte value = default) => throw null; } diff --git a/packages/http-client-csharp/generator/TestProjects/Spector/http/encode/numeric/src/Generated/Models/Uint32AsStringProperty.cs b/packages/http-client-csharp/generator/TestProjects/Spector/http/encode/numeric/src/Generated/Models/Uint32AsStringProperty.cs index b8d7fead8db..54bd388dfdd 100644 --- a/packages/http-client-csharp/generator/TestProjects/Spector/http/encode/numeric/src/Generated/Models/Uint32AsStringProperty.cs +++ b/packages/http-client-csharp/generator/TestProjects/Spector/http/encode/numeric/src/Generated/Models/Uint32AsStringProperty.cs @@ -8,7 +8,7 @@ public partial class Uint32AsStringProperty { public Uint32AsStringProperty() => throw null; - public object Value + public uint? Value { get => throw null; set => throw null;