The problem is simple. Its constructors are available but are marked "infrastructure" by Microsoft. This is a case of some less than perfect Microsoft design trick they use from time to time as they failed to hide access to those constructors in an elegant way and left them public.
From the practical standpoint, you should consider those constructors
private
or
internal
even though technically they are not.
A class does not have to have
public
constructors as it can be constructed in some non-constructor method and the instance returned by this method. Such
factory method can be in the same class or some other class. There are many examples of such design in .NET libraries.
This is what happened in case of
PlainTextContentControl
: its instances can be constructed and returned by the method
AddPlainTextContentControl
, as shown in the code samples here:
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.plaintextcontentcontrol%28v=vs.90%29.aspx[
^].
See also:
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.plaintextcontentcontrol_members%28v=vs.90%29.aspx[
^],
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.plaintextcontentcontrol.plaintextcontentcontrol%28v=vs.90%29.aspx[
^].
—SA