W wielu miejscach napotykam częściowo kwalifikowane nazwy typu o postaci FullTypeName, AssemblyName
, tj. Takie jak Type.AssemblyQualifiedName
tylko bez kwalifikatorów wersji, kultury i publicKeyToken.Jak działa Type.GetType, gdy podano nazwę częściowo kwalifikowanego typu?
Moje pytanie brzmi: jak można go przekonwertować na odpowiedni Type
przy minimalnym wysiłku? Myślałem, że wykonuje to zadanie, ale niestety nie. Poniższy kod, na przykład, zwraca null
:
Type.GetType("System.Net.Sockets.SocketException, System");
Oczywiście, gdybym podać pełną nazwę to działa:
Type.GetType("System.Net.Sockets.SocketException, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
dzięki.
Czy masz typ w czasie kompilacji? Jeśli tak, dlaczego nie użyć typeof () .FullName, et. glin? Jeśli masz typ w czasie wykonywania, możesz użyć
Jestem w pełni świadomy typeof() lub Type.FullName. Typ obiektu jest odczytywany z pliku konfiguracyjnego, dlatego używam Type.GetType. I właśnie dlatego tak bardzo zależy mi na zrozumieniu, jak działają częściowo kwalifikowane nazwy typów. – mark