In my comments Kevin Westhead asks about the Windows Forms FileDialog.  I was able to speak to grandpuba of Windows Forms, Mark Boulter who explained this as recommend a fix to the documentation:

 

FileDialog is a detail of the implementation of OpenFileDialog and SaveFileDialog. It exists purely to allow us to share code between these two classes. If we could make this class internal whilst making OFD and SFD public we would have done so.

 

 The documentation should explain this more clearly. The statement:

 "FileDialog is an abstract class, and cannot be created directly. Additionally, you cannot inherit from this class. To create a dialog box to select or save a file, use OpenFileDialog or SaveFileDialog."

Is close to nonsensical and should be replaced with something like:

"FileDialog is an abstract class that contains common behavior for the OpenFileDialog and SaveFileDialog classes. It is not intended to be used directly but contains common behavior for those two classes. You can neither create an instance of FileDialog nor inherit from it. To create a dialog box to select or save a file, use OpenFileDialog or SaveFileDialog."

 

Hope that helps