Struct DeserializationFailure
public readonly struct DeserializationFailure : IResultFailure
- Implements
- Inherited Members
Examples
// Create a deserialization failure when JSON doesn't match expected type
string invalidJson = "{\"wrong\":\"format\"}";
DeserializationFailure failure = DeserializationFailure.From(typeof(User), invalidJson);
Console.WriteLine(failure.GetFailureMessage());
// "Unable to deserialize '{"wrong":"format"}' into 'User'."
Constructors
DeserializationFailure(Type, string)
Creates a DeserializationFailure.
[JsonConstructor]
public DeserializationFailure(Type expectedType, string serializedContent)
Parameters
Properties
ExpectedType
The expected type for deserialization.
public Type ExpectedType { get; }
Property Value
SerializedContent
The serialized content.
public string SerializedContent { get; }
Property Value
Type
The type of failure.
public Type Type { get; }
Property Value
Methods
From(Type, string)
Creates a DeserializationFailure.
public static DeserializationFailure From(Type expectedType, string serializedContent)
Parameters
Returns
- DeserializationFailure
The failure.
Examples
DeserializationFailure failure = DeserializationFailure.From(typeof(Customer), "{\"id\":123}");
Result<Customer> result = failure.ToResult<Customer>();
GetFailureMessage()
Returns the error message defined in the failure.
public string GetFailureMessage()
Returns
- string
The error message.
Examples
IResultFailure failure = ResultFailure.FromErrorMessage("Invalid input");
string message = failure.GetFailureMessage(); // "Invalid input"
ToException()
Converts the failure to an exception.
public Exception ToException()
Returns
- Exception
The exception.
Examples
IResultFailure failure = ResultFailure.FromErrorMessage("Operation failed");
throw failure.ToException();
ToResult<T>()
Converts the failure to a Result with a Failure state.
public Result<T> ToResult<T>()
Returns
- Result<T>
A Result with a Failure state.
Type Parameters
TThe underlying type of Result.
Examples
IResultFailure failure = ResultFailure.FromErrorMessage("Not found");
Result<User> result = failure.ToResult<User>();
Console.WriteLine(result.IsFailure); // true