Связь между DLL и пространствами имен в C #
Вопрос высокого уровня здесь:
Сегодня я потратил много времени на изучение основных понятий высокого уровня, таких как API, статические и динамические библиотеки, библиотеки DLL и маршалинг в C #. Получение всего этого знания привело меня к тому, что кажется довольно простым вопросом, и, вероятно, демонстрирует пробел в моем понимании этих концепций:
Что я знаю:
DLL могут содержать классы, которые в свою очередь содержат различные члены класса, такие как методы и поля, некоторые из которых я мог бы использовать в своей программеВ C # мы используем ключевое слово «using» в верхней части кода, чтобы определить пространство имен, которое мы хотим включить в нашу программу.Что я не получаю
У меня сложилось впечатление, что фактические методы были определены в DLL. Как моя программа находит фактические функции, которые определены в DLL, когда все, что я даю им, это пространство имен? Мне кажется более интуитивно понятным иметь «использование XYZ.dll» вверху, а не «использование пространства имен XYZ».
Большое спасибо за помощь в заполнении пробелов.
РЕДАКТИРОВАТЬ: модифицированный пост, чтобы быть специфичным для C #.
РЕДАКТИРОВАТЬ 2: Для других людей, которые задаются вопросом, как их приложение C # фактически овладевает типами, доступными через «использование namespaceX», это хороший ресурс (в дополнение к полезным постам ниже):http://broadcast.oreilly.com/2010/07/understanding-c-namespaces-and.html.
В основном тип, который вы хотели бы использовать, находится в библиотеках, и вы должны установить Visual Studio для ссылки на эти библиотеки, чтобы сделать возможным «использование» его пространства имен в вашем коде.