using
директивы о пространствах имен , а не сборках .
Если ваша библиотека пуста, она ничего не вносит в пространство имен, поэтому директива usingничего не найдет.
Очень важно понимать разницу между пространством имен и сборкой - у вас может быть библиотека Foo.dll
, которая содержит только Bar.Xyz
.Вы бы добавили ссылку в своем проекте к Foo.dll
, но директиву using для Bar
.
В качестве более конкретного примера, класс Enumerable
в System.Linq
namespace происходит от System.Core.dll
- но вы все равно добавляете директиву using
для System.Linq
, а не System.Core
.Действительно, если вы попытаетесь добавить директиву using
для System.Core
, вы получите ошибку - потому что это пространство имен не существует.(Пространство имен фактически не существует, если в нем нет членов.)