Как свойство может разрешить свое собственное имя и тип с отражением? - PullRequest
1 голос
/ 12 марта 2010

Есть ли способ для свойства получить доступ к своему собственному имени и типу во время выполнения, используя отражение? Я хочу получить доступ к этой информации без жесткого кодирования имени или индекса свойства в классе.

Простой пример кода:

Private ReadOnly Property MyProperyName() As String
    Get
        Console.WriteLine((Get Current Property Info).Type.ToString)
        Console.WriteLine((Get Current Property Info).Name)
        Return ""
    End Get
End Property

Ожидаемый результат:

System.String
MyPropertyName

1 Ответ

2 голосов
/ 12 марта 2010

Вы можете использовать StackTrace, чтобы получить текущий метод:

Dim currentMethod = CType(new StackTrace(0, false).GetFrame(0).GetMethod(), _ 
    System.Reflection.MethodInfo)

Если вы можете предположить, что находитесь в свойстве, вы можете убрать "get_" из передней части имени метода:

Dim propertyName as string = currentMethod.Name.SubString(4)

И используйте ReturnType для типа собственности:

Dim propertyType as Type = currentMethod.ReturnType
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...