VB.NET: получить имя класса экземпляра

Есть ли способ получить имя класса экземпляра с помощью VB.NET?


person afe    schedule 20.08.2010    source источник


Ответы (4)


Dim type As Type = yourObject.GetType()
Dim typeName As String = type.FullName

Полное имя даст вам полное имя типа, включая пространство имен типа.

Дополнительную информацию о что доступно с Type.

person Kelsey    schedule 20.08.2010
comment
как бы вы сделали это на общем уровне с подклассами? - person NullVoxPopuli; 03.03.2015

Попробуйте следующее

Dim name = Me.GetType().Name

Или для любого экземпляра

Dim name = theObject.GetType().Name
person JaredPar    schedule 20.08.2010
comment
как бы вы сделали это на общем уровне? поддержка подклассов? - person NullVoxPopuli; 03.03.2015

Это может быть лучше, если вы используете класс веб-сайта asp.net, а не объект.

Dim ClassName as string = Me.GetType().BaseType.FullName

OR

когда вы используете настольное приложение.

Dim ClassName as string = Me.GetType().Name
person Rajan    schedule 14.12.2016
comment
Me.GetType().BaseType.FullName не дает мне имя класса (для класса, который я закодировал). Он просто возвращает System.Object. Но me.GetType().Name возвращает имя моего класса. - person Dan H.; 25.06.2018

Используя Reflection, вы можете сделать следующее...

System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString()

Я использую следующее при регистрации информации о трассировке. Это дает вам имя класса со всеми пространствами имен и текущим именем метода.

$"{System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString()}.{MethodBase.GetCurrentMethod().Name}"
person Chase    schedule 22.10.2020