Как получить строку «из» Aff при использовании библиотеки LanguageExt.Core с C#C#

Место общения программистов C#
Ответить
Anonymous
 Как получить строку «из» Aff при использовании библиотеки LanguageExt.Core с C#

Сообщение Anonymous »

Я начинаю реализовывать библиотеку LanguageExt.Core на C#, создавая минимальный проект API. Прямо сейчас у меня есть класс Validate, который запускает все мои проверки, которые вы можете выполнить с помощью runtime.Validate, который был изменен, чтобы вместо этого возвращать строковый тип для демонстрационных целей. Этот метод имеет подпись как Aff as и определен в моей среде выполнения следующим образом:

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

public Aff Validate => SuccessAff(Validation.Success("My success response"));
И класс, в котором я выполняю эти проверки, определяется следующим образом:

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

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;
}
}
Проблема в следующем:
Инструкция return в методе Eff Validate возвращает Eff x.ToEff(errors =>
errors.Aggregate(Error.New("Errors:"), (e1, e2) => e1.Append(e2))))
select validationAff;
[/code]
Но это дает мне Aff при выборе validationAff, который не соответствует окончательному ожидаемому Eff, потому что вместо этого создается Eff.
Ожидается возможность получить объект string из Validate метод с использованием select validationAff или чего-то еще например, выберите чистый. Прямо сейчас код создает ошибку компиляции, поскольку сигнатура метода Validate определена как Eff Validate, а оператор return создает объект типа Eff
Любая идея или предложение приветствуется.

Подробнее здесь: https://stackoverflow.com/questions/793 ... brary-with
Ответить

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

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

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

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

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