CA1012: Abstract types should not have constructors
A public type is abstract and has a public constructor.
Constructors on abstract types can be called only by derived types. Because public constructors create instances of a type, and you cannot create instances of an abstract type, an abstract type that has a public constructor is incorrectly designed.
To fix a violation of this rule, either make the constructor protected or do not declare the type as abstract.
Do not suppress a warning from this rule. The abstract type has a public constructor.
The following example contains an abstract type that violates this rule.