Можно ли получить элемент экземпляра объекта?

#vb.net

Вопрос:

Я пытаюсь получить имя участника и его атрибут. Я использовал StackTrace, GetType(), MemberInfo и т. Д., Но безуспешно.

 Class Test  Class Test  lt;Description("Some description")gt; Property TestProperty1 As Test2  lt;Description("Some description")gt; Property TestProperty2 As Test2  Sub New()  TestProperty1 = New Test2("Test text")  TestProperty2 = New Test2("")  End Sub End Class End Class Class Test2  Property Text As String  Sub New(ByVal SomeText As String)  Text = SomeText  End Sub End Class lt;AttributeUsage(AttributeTargets.Property, Inherited:=False)gt; Class Description : Inherits Attribute  Property Description As String  Sub New(ByVal Value As String)  Description = Value  End Sub End Class  

Я могу получить метод вызова (вызывающий член), исходный класс TypeInfo и его члены, но я не могу определить, какой именно член является истинным экземпляром моего класса.

Есть ли способ получить имя участника «TestProperty1» класса «Test» из Sub New(ByVal SomeText As String) класса «Test2»?

Комментарии:

1. Можете ли вы пояснить, что именно вы пытаетесь сделать? Пожалуйста, предоставьте более подробную информацию в примере, который четко демонстрирует, где ваш код не работает и что вы хотите, чтобы произошло.

2. Моя цель состоит в том, чтобы получить имя свойства и доступ к атрибуту свойства. Например. Я объявляю «TestProperty1». Затем я инициализирую это свойство конструктором по умолчанию «New». При инициализации (в теле sub new ) Я хочу получить объявленное имя свойства этого экземпляра ( TestProperty1 ). Я попытался вызвать StackTrace, и я вижу вызывающего (класс «Тест») и всех его членов. Но! Я не могу определить, какой член принадлежит к моему экземпляру. Я не видел ни одного уникального параметра параметров-членов типа, с которым я мог бы сравнить эти экземпляры.

3. Я не думаю, что это поддерживается. Основная проблема заключается в том, что назначение является отдельным действием от создания нового экземпляра, поэтому на этапе создания конечный пункт назначения недоступен.

4. Я тоже так думаю. Все равно спасибо вам за ответ.

5. Хорошо, если я не могу получить имя, как я могу получить доступ к атрибуту «Описание»? Я тоже этого не вижу. И (второй вопрос) как должен быть создан атрибут, который будет работать как «CallerMemberName»? Я погуглил и ничего не нашел о том, как именно работает «CallerMemberName».