[CheckId] CA1012 [Warning] CA1012: Abstract types should not have constructors [Description] 
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.