Привет
Допущения в проекте
- Минимальную видимость в классов в проекте делать не стал, перенес в интернал неймспейс. В настоящих библиотеках (например у нас в DevExpress) так часто делают
- Вычисление площади фигуры без знания типа фигуры в compile-time - непонятно что тут имелось ввиду. Сделал стандартный DI
- Апи регистрации делать не стал, используется стандартное из autofac
- Проект написан для демонстрации SOLID и testability, в реальной либе так конечно не пишут )