What is the difference between using a PropertyDescriptor that returns a value for the IsReadOnly() method, and one that is associated with a ReadOnlyAttribute?
From stackoverflow
-
No difference when I look at it using Reflector.
One of the derived class SimplePropertyDescriptor has the following code.
public override bool IsReadOnly { get { return this.Attributes.Contains(ReadOnlyAttribute.Yes); } } -
The main difference is that this allows you to seize more control if you provide your own
PropertyDescriptorimplementation (viaICustomTypeDescriptor,TypeDescriptionProviderorTypeConverter). Then you can choose your own logic for when it is writeable - for example, based on access rights.But yes; under the default implementation, it will report read-only for properties without setters, and for properties marked with
ReadOnlyAttribute.Eric Anastas : So say I am creating my own PropertyDescriptor via ICustomTypeDescriptor then the IsReadOnly() method will override whatever ReadOnly attributes have already been applied to it?Marc Gravell : That is correct.
0 comments:
Post a Comment