Ich habe eine ASP.NET Core 9.0-Web-API mit einer POST-Methode, die XML akzeptiert. Der Beitrag wird als deserialisiertes Objekt an meinen Controller übergeben. Allerdings verursachen alle leeren Elemente im geposteten XML-Inhalt ein
Problem bei der Deserialisierung. Wenn ich mit XDocument-Methoden deserialisiere, kann ich Leerzeichen entfernen, die zu Deserialisierungsausnahmen führen. Ich habe jedoch Probleme beim Zugriff auf einen Konfigurationsaufruf im MvcBuilder, der denselben Schritt ausführen würde.
Ist es möglich, den von AddControllers() zurückgegebenen MvcBuilder so zu konfigurieren, dass Leerzeichen entfernt werden?
Hier ist meine program.cs:
Code: Select all
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers().AddXmlSerializerFormatters();
var app = builder.Build();
// Configure the HTTP request pipeline.
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
Hier ist mein Controller:
Code: Select all
[Route("[controller]")]
[ApiController]
public class MyPlatformController : ControllerBase
{
//
[HttpPost]
public async Task PlatformService(RequestModel request)
{
//process request
return new JsonResult(Ok(postResult));
}
}
Ich frage mich auch, ob ich den Controller einem Unit-Test unterziehen soll. Es wird nicht kompiliert, wenn ich versuche, eine XML-Zeichenfolge in PlatformService() aus der Unit-Test-Methode zu übergeben. Gibt es eine Möglichkeit, die Deserialisierung des RequestModel-Objekts zu testen?