Error compiling Autorest Generated Client

After autogenerating client using Swagger OpenApi 3.0 spec, I'm unable to compile the generated client. I get error on objects ClientDiagnostics, RawRequestUriBuilder, Utf8JsonRequestContent.

RestClient.cs

// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // <auto-generated/> #nullable disable using System; using System.Collections.Generic; using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Azure; using Azure.Core; using Azure.Core.Pipeline; using Planner.Client.Models; namespace Planner.Client { internal partial class RestClient { private Uri endpoint; private ClientDiagnostics _clientDiagnostics; private HttpPipeline _pipeline; /// <summary> Initializes a new instance of RestClient. </summary> /// <param name="clientDiagnostics"> The handler for diagnostic messaging in the client. </param> /// <param name="pipeline"> The HTTP pipeline for sending and receiving REST requests and responses. </param> /// <param name="endpoint"> server parameter. </param> public RestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint = null) { endpoint ??= new Uri(""); this.endpoint = endpoint; _clientDiagnostics = clientDiagnostics; _pipeline = pipeline; } internal HttpMessage CreateCreateDataRequest(IEnumerable<DataCreateModel> body) { var message = _pipeline.CreateMessage(); var request = message.Request; request.Method = RequestMethod.Post; var uri = new RawRequestUriBuilder(); uri.Reset(endpoint); uri.AppendPath("/api/Budget/CreateData", false); request.Uri = uri; if (body != null) { request.Headers.Add("Content-Type", "application/json"); var content = new Utf8JsonRequestContent(); content.JsonWriter.WriteStartArray(); foreach (var item in body) { content.JsonWriter.WriteObjectValue(item); } content.JsonWriter.WriteEndArray(); request.Content = content; } return message; } } } 

Also, getting error in below autogenerated serialization class on IUtf8JsonSerializable and Optional.

DataCreateModel.Serialization.cs

// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // <auto-generated/> #nullable disable using System.Text.Json; using Azure.Core; namespace Planner.Client.Models { public partial class DataCreateModel : IUtf8JsonSerializable { void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) { writer.WriteStartObject(); if (Optional.IsDefined(ProjectCode)) { if (ProjectCode != null) { writer.WritePropertyName("projectCode"); writer.WriteStringValue(ProjectCode); } else { writer.WriteNull("projectCode"); } } if (Optional.IsDefined(TeamCode)) { if (TeamCode != null) { writer.WritePropertyName("teamCode"); writer.WriteStringValue(TeamCode); } else { writer.WriteNull("teamCode"); } } if (Optional.IsDefined(YearMonth)) { writer.WritePropertyName("yearMonth"); writer.WriteNumberValue(YearMonth.Value); } if (Optional.IsDefined(Hours)) { writer.WritePropertyName("hours"); writer.WriteNumberValue(Hours.Value); } writer.WriteEndObject(); } } } 

This project using .net 5, autorest v3.1.0, cli v3.1.2 and node v14.15.5.

What am I missing?

3

2 Answers

I have add only this changes and it works

<PropertyGroup> <IncludeGeneratorSharedCode>true</IncludeGeneratorSharedCode> <RestoreAdditionalProjectSources> </PropertyGroup> <ItemGroup> <PackageReference Include="Azure.Core" Version="1.10.0" /> <PackageReference Include="Microsoft.Azure.AutoRest.CSharp" Version="3.0.0-beta.20210311.1" PrivateAssets="All" /> </ItemGroup> 

For the client creation i use this

class MyClientOptions : ClientOptions { } static void Main(string[] args) { var client = new TestRestClient( new ClientDiagnostics(new MyClientOptions()), new HttpPipeline(HttpClientTransport.Shared), new Uri("")); } 
7

It seems new autorest requires some changes in csproj.

For my case, I had to change it to

<PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <Nullable>annotations</Nullable> <IncludeGeneratorSharedCode>true</IncludeGeneratorSharedCode> <RestoreAdditionalProjectSources> <LangVersion>8</LangVersion> </PropertyGroup> <ItemGroup> <PackageReference Include="Azure.Core" Version="1.10.0" /> <PackageReference Include="Microsoft.Azure.AutoRest.CSharp" Version="3.0.0-beta.20210311.1" PrivateAssets="All" /> </ItemGroup> 
0

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like