Apariencia
Leer el error de un resultado
Comprueba IsError antes de leer Error. En un éxito, esa propiedad lanza InvalidOperationException.
csharp
using Greencore.Platform.Errors;
using Greencore.Platform.Results;
using Greencore.Platform.Errors.Extensions;
using Greencore.Platform.Nodes;
var resultado = Result<int>.Fail(
Error.Create("Cantidad inválida.").WithReason("Debe ser positiva."));
if (resultado.IsError)
{
var error = resultado.Error;
Console.WriteLine(error.Message);
if (error.TryGetReason<IReasonNode>(out var causa))
Console.WriteLine(causa.Message);
}Las búsquedas pertenecen a Errors: se escriben resultado.Error.FindError<T>() y resultado.Error.FindReason<T>(). No se invocan sobre Result.
Fail(error) conserva la instancia recibida. Las fábricas no tipadas también permiten Fail(error1, error2): combinan raíces distintas por referencia. Para partir de un error existente puedes usar error.ToResult() o error.ToResult<int>(), importando Greencore.Platform.Results.
Recuerda: Result indica si falló; Error explica el fallo.
Los detalles de búsqueda están en consultar errores y razones.