如何将ByteSerialize属性/长度分配为变量

时间:2019-03-29 08:01:00

标签: c# serialization

我正在创建具有不同类型和长度的模型,这些模型将用作对API的请求/响应。

    [ByteSerialize(1)]
    public string ByteLength { get; set; }

    [ByteSerialize()]
    public string Byte { get; set; }

我想首先从API获得ByteLength,然后将其传递给[ByteSerialize(?)]

1 个答案:

答案 0 :(得分:1)

属性是惰性的-没有让事物自动发生的神奇方法。此外,通常通常仅将属性视为IL中的元数据,因此:必须将属性的参数表示为常量,而不是运行时值。显然,如果仅将属性创建为对象(而不是元数据),而是创建示例,则示例将显示元数据。

要执行所需操作,您可以可以手动完成,即在ByteSerializeAttribute上有一些方法,并且当代码检测到时(通过{{1 }}),该属性就在其中,使用类似以下内容的

PropertyInfo