Попробуйте вместо этого добавить в абстрактный класс защищенный конструктор без параметров.
Когда вы не предоставляете конструктор, компилятор добавляет public , без параметров для вас. Понятно, что для абстрактного класса неуместно иметь общедоступные конструкторы, так как они в любом случае эффективно защищены - конструкторы абстрактных типов могут в лучшем случае вызываться подклассами (вот и весь смысл абстрактного типа - он не может быть создан как «ваниль»). Этот недостаток дизайна - то, что заставляет FxCop жаловаться.
С другой стороны, шаг, который вы сделали, чтобы решить проблему, был слишком экстремальным; классы (абстрактные или нет), которые имеют только частные конструкторы, на практике не подклассифицированы (кроме как вложенным классом) - не существует неявного или явного base(...)
вызова конструктора, который мог бы работать в производном классе конструктор.
РЕДАКТИРОВАТЬ: мне нравится, как эта страница MSDN выражает это:
В приведенном выше примере абстрактный тип имеет
публичный конструктор, который может
запутать пользователей. Они видят публику
конструктор, но не понимаю почему
они не могут создать тип.