Relacja między bibliotekami DLL a przestrzeniami nazw w języku C #

Wysokie pytanie tutaj:

Spędziłem dziś wiele czasu, ucząc się podstawowych pojęć na wysokim poziomie, takich jak API, statyczne i dynamiczne biblioteki, biblioteki DLL i marshaling w języku C #. Zdobycie całej tej wiedzy doprowadziło mnie do tego, co wydaje się dość podstawowym pytaniem i prawdopodobnie pokazuje dziurę w moim rozumieniu tych pojęć:

Co wiem:

Biblioteki DLL mogą zawierać klasy, które z kolei zawierają różne elementy klas, takie jak metody i pola, z których kilka chciałbym wykorzystać w moim programieW C # używamy słowa kluczowego „using” u góry kodu, aby zdefiniować przestrzeń nazw, którą chcemy uwzględnić w naszym programie

Czego nie dostaję:

Miałem wrażenie, że rzeczywiste metody zostały zdefiniowane w bibliotekach DLL. W jaki sposób mój program znajduje rzeczywiste funkcje zdefiniowane w bibliotekach DLL, gdy wszystko, co im podam, to przestrzeń nazw? Bardziej intuicyjne wydaje mi się używanie „używania XYZ.dll” zamiast „używania XYZ_namespace”.

Wielkie dzięki za pomoc w wypełnieniu luk tutaj.

EDYCJA: Zmodyfikowany post jest specyficzny dla C #.

EDYCJA 2: Dla innych osób, które zastanawiają się, w jaki sposób ich aplikacja w C # faktycznie przechwytuje typy udostępnione poprzez „używanie przestrzeni nazw X”, jest to dobry zasób (oprócz przydatnych postów poniżej):http://broadcast.oreilly.com/2010/07/understanding-c-namespaces-and.html.

Zasadniczo typ, który chciałbyś użyć, znajduje się w bibliotekach i musisz ustawić Visual Studio, aby odwoływał się do tych bibliotek, aby umożliwić „użycie” jego przestrzeni nazw w kodzie.

questionAnswers(5)

yourAnswerToTheQuestion