Fixed a csharp client generator bug. The csharp client generator now outputs a constructor for types that allows setting property/fields. Bumped package version to 1.5.7
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
<AssemblyName>MontoyaTech.Rest.Net</AssemblyName>
|
||||
<RootNamespace>MontoyaTech.Rest.Net</RootNamespace>
|
||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||
<Version>1.5.6</Version>
|
||||
<Version>1.5.7</Version>
|
||||
<PackageReleaseNotes></PackageReleaseNotes>
|
||||
<PackageIcon>Logo_Symbol_Black_Outline.png</PackageIcon>
|
||||
</PropertyGroup>
|
||||
|
@@ -236,6 +236,27 @@ namespace MontoyaTech.Rest.Net
|
||||
writer.WriteLine($"this.{property.Name} = instance.{property.Name};");
|
||||
|
||||
writer.Outdent().WriteLine('}');
|
||||
|
||||
//Generate a constructor to set all the fields/properties with optional default values
|
||||
writer.WriteBreak();
|
||||
writer.Write($"public {(newName != null ? newName.Name : type.Name)}(");
|
||||
|
||||
foreach (var field in fields)
|
||||
writer.WriteSeparator().Write($"{this.GetTypeFullyResolvedName(field.FieldType)} {field.Name} = {this.GetTypeDefaultValue(field.FieldType)}");
|
||||
|
||||
foreach (var property in properties)
|
||||
writer.WriteSeparator().Write($"{this.GetTypeFullyResolvedName(property.PropertyType)} {property.Name} = {this.GetTypeDefaultValue(property.PropertyType)}");
|
||||
|
||||
writer.WriteLine(")");
|
||||
writer.WriteLine('{').Indent();
|
||||
|
||||
foreach (var field in fields)
|
||||
writer.WriteLine($"this.{field.Name} = {field.Name};");
|
||||
|
||||
foreach (var property in properties)
|
||||
writer.WriteLine($"this.{property.Name} = {property.Name};");
|
||||
|
||||
writer.Outdent().WriteLine('}');
|
||||
}
|
||||
|
||||
//Generate C# for any types that belong to this one.
|
||||
|
@@ -356,7 +356,7 @@ namespace MontoyaTech.Rest.Net
|
||||
else if (typeCode == TypeCode.String || typeCode == TypeCode.Object)
|
||||
return "null";
|
||||
else if (typeCode == TypeCode.Char)
|
||||
return "'\0'";
|
||||
return "'\\0'";
|
||||
else
|
||||
return Activator.CreateInstance(type).ToString();
|
||||
}
|
||||
|
Reference in New Issue
Block a user