So erhalten Sie einen String „aus“ Aff, wenn Sie die LanguageExt.Core-Bibliothek mit C# verwenden
Posted: 15 Jan 2025, 18:05
Ich fange an, die LanguageExt.Core-Bibliothek in C# zu implementieren und ein minimales API-Projekt zu erstellen. Im Moment habe ich eine Validate-Klasse, die alle meine Validierungen ausführt, die Sie mit runtime.Validate ausführen können, die zu Demonstrationszwecken so geändert wurde, dass sie stattdessen einen String-Typ zurückgibt. Die Signatur dieser Methode lautet Aff as und sie ist in meiner Laufzeit wie folgt definiert:
Und die Klasse, in der ich diese Validierungen ausführe, ist wie folgt definiert:
Das Problem ist:
Die return-Anweisung in der Eff Validate-Methode gibt Eff
Code: Select all
public Aff Validate => SuccessAff(Validation.Success("My success response"));
Code: Select all
using LanguageExt;
using LanguageExt.Common;
using static LanguageExt.Prelude;
namespace ApplinxChannel.Api;
internal static class Validation
{
internal static Eff Validate(TRequest request)
where TRuntime : struct,
HasValidator
where TRequest : notnull
where TClean : notnull
{
return from runtime in Eff(identity)
let clean = runtime.Validate.Bind(x => x.ToEff(errors =>
errors.Aggregate(Error.New("Errors:"), (e1, e2) => e1.Append(e2))))
select clean;
}
}
Die return-Anweisung in der Eff Validate-Methode gibt Eff