Recently while exploring multi-threading with WPF, I came across a method on a WPF control's Dispatcher to check if the current thread has access to the control.

myButton.Dispatcher.CheckAccess();

Now, the funny thing about this method is that it is a public method, but unavailble from Intellisense within Visual Studio. If manually typed in, it compiles and executes just fine, but there was no idication of that method existing. Now how could that be? Could I have missed something? Obviously I did - this method of hiding members has been available at least as far back as the 1.1 version of the framework.

[EditorBrowsable(1)]
public boolean CheckAccess();

This attribute takes a parameter which is an EditorBrowsableState. This is an enumeration defined as:

Always = 0 //The property or method is always browsable from within an editor.
Never = 1
//The property or method is never browsable from within an editor.
Advanced = 2 //The property or method is a feature that only advanced users should see. An editor can either show or hide such properties.

First of all, who determines whether I am an advanced user or not? Well, that's an option set in Visual Studio.

Ok, so by default these Advanced members aren't hidden. Whew! But as for the EditorBrowsable(1) members, keep in mind there may be more available than what you are seeing!

More on MSDN...