I don't know about the first option (I suspect it's to do with declaring one property in a base class and a "new" property in a derived class), but the third seems pretty simple to me:
public class Foo
{
public string Name { get; set; }
public Foo()
{
ResetName();
}
public void ResetName()
{
Name = "Some default value";
}
}
The documentation is saying that if you call ResetValue
on the PropertyDescriptor
for the Name
property, it will call the ResetName
method on the component.
I've never actually tried this, but that would be my interpretation.