by Guest » 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:
Code: Select all
public Aff Validate => SuccessAff(Validation.Success("My success response"));
Und die Klasse, in der ich diese Validierungen ausführe, ist wie folgt definiert:
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;
}
}
Das Problem ist:
Die return-Anweisung in der Eff Validate-Methode gibt Eff
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:
[code]public Aff Validate => SuccessAff(Validation.Success("My success response"));
[/code]
Und die Klasse, in der ich diese Validierungen ausführe, ist wie folgt definiert:
[code]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;
}
}
[/code]
Das Problem ist:
Die return-Anweisung in der Eff Validate-Methode gibt Eff