You can simplify it slightly by calling PropertyInfo.GetValue
instead:
SelectedValue = (IFace)SelectedType
.GetProperty("Instance", BindingFlags.Static | BindingFlags.Public)
.GetValue(null, null);
As of .NET 4.5 you could call GetValue(null)
as an overload has been added which doesn't have the parameter for indexer parameters (if you see what I mean).
At this point it's about as simple as reflection gets. As David Arno says in comments, you should quite possibly revisit the design instead.