强类型id

时间:2020-11-01 18:59:40

标签: c# signalr

我强烈输入了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方法,但是我想传递强类型。我想念什么?

0 个答案:

没有答案