对.NET类的属性数量有任何限制吗?

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

对于具有这许多属性的此类对象,他们的任何性能影响是否都要关注?

谢谢!

元数据每个程序集最多可包含24位引用/定义。 作为一个财产,每个属性需要2个方法。 因此,对于整个组件,限制将是23位,或1 << 23 - 1 23-1。

更新:

如果它们只是只读属性,则限制为1 << 24 - 1

回答第二个问题:

不,没有性能开销。 JIT可能会简单介绍简单属性。

一些想法:

你永远不会达到上述限制。 成像具有1600万个属性。 这也需要为名称存储1600万个字符串。 假设平均名称是8个字符,那么你正在查看字符串表大小~256MB(属性名称+方法名称),然后你还没有开始编码。 只是一个想法。