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 programieCzego 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.