ReadOnlyAttribute vs PropertyDescriptor.IsReadOnly()

Eri*_*tas 5 c# attributes readonly propertydescriptor

使用a PropertyDescriptor返回IsReadOnly()方法的值和与ReadOnlyAttribute?相关的值有什么区别?

Mar*_*ell 5

主要区别在于,如果您提供自己的PropertyDescriptor实现(通过ICustomTypeDescriptor,TypeDescriptionProviderTypeConverter),这可以让您获得更多控制权.然后,您可以选择自己的逻辑,以便何时可写 - 例如,基于访问权限.

但是,是的; 在默认实现下,它将为没有setter的属性以及标记为的属性报告只读ReadOnlyAttribute.