我强烈输入了id:
public sealed class OrderId : IEquatable<OrderId>
{
private readonly Guid _id;
/// <summary>
/// Constructor
/// </summary>
public OrderId()
{
this._id = Guid.NewGuid();
}
/// <summary>
/// Constructor
/// </summary>
/// <param name="id">Id in guid</param>
public OrderId(Guid id)
{
this._id = id;
}
}
我正在尝试通过Signalr Hub方法传递此OrderId
:
[HubMethodName(name: "SubscribeOrderId")]
public async Task SubscribeOrderIdAsync(OrderId orderId)
我有json转换器并将其注册在hubconnection生成器中:
public sealed class OrderIdConverter : JsonConverter<OrderId>
{
public override OrderId Read(ref Utf8JsonReader reader, System.Type typeToConvert, JsonSerializerOptions options)
{
return new OrderId(System.Guid.Parse(reader.GetString()));
}
public override void Write(Utf8JsonWriter writer, OrderId value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString());
}
}
但是我仍然出现以下错误:
InvalidDataException:错误绑定参数。确保 提供的值的类型与正在使用的hub方法的类型匹配 调用。
目前,我正在将字符串传递给hub方法,但是我想传递强类型。我想念什么?