Если ты хочешь просто добавлять длл-ки без перекомпиляции основного кода, тогда надо юзать рефлексию - Assembly, Activator и т.п. Смотри в MSDN. Опять же долго объяснять, но подсказка вполне прозрачная. Тут же в теме я вроде выкладывал пример такого подхода.
Блеск и нищета NET в том, что исходный код из сборок можно просматривать практически в первозданном виде, если его специально перед этим не обработать. Гугли .Net Reflector (shareware) и ILSpy (бесплатный аналог)
И еще. К Addin то что ты предлагаешь, не имеет никакого отношения, лучше переименуй, что бы не путаться. А вот оно -
курим конвейер дополнений