Почему класс из dll объявляется только если перед ним писать пространство имён?
Если у вас положение класса примерно ПространствоИмён.ПространствоИмён.Класс, то нужно писать
using ПространствоИмён.ПространствоИмён.
Ещё можно использовать using ИмяКласса = ПространствоИмён.ИмяКласса.
Но вообще это - bad practice. Вот вам ссылка для дальнейшего изучения.
По ссылке нашёл решение. Прописал using внутри пространства имён в основном проекте. Спасибо огромное.