2013-03-15 3 views
3

У меня есть объект типа «System.Windows.Documents.TextSegment» в объекте типа Object. TextSegment-Struct i не может использоваться в моем коде, потому что это внутренний код .net-framework.Значение доступа TextSegment путем отражения

Что я хочу сделать, это доступ к начальному и конечному свойствам объекта типа TextSegment. Я попробовал это путем отражения следующим кодом:

// This object is of type TextSegment 
object textSegment = segments[0]; 
FieldInfo info = textSegment.GetType().GetField("_start", BindingFlags.IgnoreCase | 
    BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance| BindingFlags.Static; 

Теперь я не знаю, как получить доступ к значению FieldInfo.

Я попробовал его со следующими кодами:

object value1 = info.GetValue(segments[0]); 
object value2 = info.GetValue(null); 

, но ничего не получалось.

Как я могу получить значение TextSegment?

+0

вы можете попробовать что-то вроде следующего 'вар значению1 = segments.GetType() GetProperties() FirstOrDefault (р => p.Name == yourPropertyName)..' – MethodMan

+0

нет, это не Работа. Я получаю null для value1 – Tomtom

+0

Я просто понял, что вы хотите, чтобы FieldInfo смотрел на эту публикацию Stackoverflow, о которой я думал об PropertyInfo http://stackoverflow.com/questions/5090224/reflection-get-type-of-fieldinfo-object – MethodMan

ответ

2

, что код кольца a bell;) ...

У вас есть опечатка (отсутствует кронштейн в конце BindingFlags), а также о BindingFlags, вам нужно будет только Instance и непубличный, но я не могу найти реальную проблему.

Возможно, вам необходимо предоставить больше кода, потому что я проверил и это отлично работает для меня:

enter image description here

Вы проверили, что значение на самом деле не равно нулю?

enter image description here

+0

Я вижу точно так же, как и вы. Но как я могу это хранить? Я не могу создать объект TextPointer или что-то еще. Как получить значение Start и End в качестве свойства. В этом проблема ... :( – Tomtom

+0

Я не совсем понимаю. Если значение value1 появляется в этом отладчике, у вас уже есть это, нет? Храните его в свойстве типа 'object'. Возможно, вам нужно сказать мне что вы хотите сделать с ним после. –

+0

Да, конечно, я могу сохранить Start-Property в свойстве объекта типа. Но мне нужно получить доступ к контретному значению Start. Это проблема. он в объект, который я не могу получить доступ к свойствам. – Tomtom

Смежные вопросы