Генератор исходного кода .NET 8 JSON сериализуется в пустое значениеC#

Место общения программистов C#
Ответить
Anonymous
 Генератор исходного кода .NET 8 JSON сериализуется в пустое значение

Сообщение Anonymous »

В настоящее время я провожу несколько тестов этой функции для реализации API, над которым работаю.
У меня есть API в .NET 8, использующий FastEndpoints, и Я пытаюсь сериализовать ввод и вывод API через генератор источников. Я заставил ввод работать, но вывод по каким-то причинам остается пустым "{}".
Изображение

Мой код:
WeatherForecastController.cs

Код: Выделить всё

public class WeatherForecastController : Endpoint
{
public override void Configure()
{
Post("/test");
Description(b => b.Produces(200));
AllowAnonymous();
}
public override async Task HandleAsync(DtoIn req, CancellationToken ct)
{
await SendOkAsync(new DtoOut()
{
Surname = req.Name + "Teste"
}, ct);
}
}

public class DtoIn
{
public string Name { get; set; }
}

public class DtoOut
{
public string Surname { get; set; }
}
Program.cs

Код: Выделить всё

using FastEndpoints;
using FastEndpoints.Swagger;
using WebApplication1;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddFastEndpoints();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}

app.UseHttpsRedirection();

app.UseAuthorization();

app.UseFastEndpoints( c =>
{
c.Serializer.Options.TypeInfoResolver = SourceGenerator.Default;
});
app.UseSwaggerGen();

app.MapControllers();

app.Run();
SourceGenerator.cs

Код: Выделить всё

using System.Text.Json.Serialization;
using WebApplication1.Controllers;

namespace WebApplication1
{
[JsonSerializable(typeof(DtoIn))]
[JsonSerializable(typeof(DtoOut))]
[JsonSourceGenerationOptions(
WriteIndented = true,
GenerationMode = JsonSourceGenerationMode.Default,
PropertyNamingPolicy = JsonKnownNamingPolicy.CamelCase
)]
internal partial class SourceGenerator : JsonSerializerContext
{
}
}
project.csproj

Код: Выделить всё



net8.0
enable
enable
true
false
true
true









Я пытался заставить это работать по крайней мере три дня, но безуспешно.

Кто-нибудь знает, что не так? Любая помощь будет оценена


Подробнее здесь: https://stackoverflow.com/questions/790 ... mpty-value
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»