C# 对.NET类上的属性数量有限制吗?

C# 对.NET类上的属性数量有限制吗?,c#,.net,oop,C#,.net,Oop,收到向对象添加800多个属性的规范。它们是否对对象在C#(或.NET)中可以拥有的属性数量有任何“限制” 对于具有如此多属性的此类对象,其性能影响是否值得关注 谢谢 元数据每个程序集最多可以有24位引用/定义。作为一个属性,每个属性需要2个方法。因此限制为23位,或者1我认为接受的答案不正确。我们的程序集刚刚遇到一个问题,即添加任何新属性都会生成代码,但是尝试加载带有反射的程序集会导致文件损坏。HRESULT 0x801310E 删除之后的任何属性将允许再次加载具有反射的程序集 我使用ildas

收到向对象添加800多个属性的规范。它们是否对对象在C#(或.NET)中可以拥有的属性数量有任何“限制”

对于具有如此多属性的此类对象,其性能影响是否值得关注


谢谢

元数据每个程序集最多可以有24位引用/定义。作为一个属性,每个属性需要2个方法。因此限制为23位,或者
1我认为接受的答案不正确。我们的程序集刚刚遇到一个问题,即添加任何新属性都会生成代码,但是尝试加载带有反射的程序集会导致文件损坏。HRESULT 0x801310E

删除之后的任何属性将允许再次加载具有反射的程序集

我使用ildasm获得了元数据统计信息:

C:\temp> ildasm.exe xyz.dll /stats /out=c:\temp\1.txt
C:\temp> cat C:\temp\1.txt | sls '\bFieldDef\b'

//   FieldDef      - 65534 (655340 bytes) 181 constant

看起来FieldDef上有一个非常明确的16位限制。

属性本身不也需要元数据插槽吗?这将导致类似于2^24的结果/3@CodeInChaos:不同的表格:)很高兴看到一个基于实际了解答案的答案,而不是含糊其辞的“我认为没有限制,但这肯定是糟糕的设计”+1@Jodrell:我?大约每分钟25英里。经过近十年的编码,我仍然无法触摸类型:(因此,假设每天8小时,不偷懒,并且你使用道具片段,所以每个酒店只需键入大约4个单词……2796个工作日就可以到达。我肯定有一些限制。但我假设它远高于1000。我很想知道你的建筑师在成为建筑师之前做了什么。也许是一位音乐家在t他同时做得很好?你如何命名这些?请不要说
Property001
->
Property800
你能解释一下这个类应该保存什么样的数据,以及为什么有人认为拥有这么多属性是个好主意吗?@leppie-别开玩笑了。当然
Property000
Property799
会你的风格会更好。