C# 通过反射访问TextSegment的值

C# 通过反射访问TextSegment的值,c#,wpf,reflection,C#,Wpf,Reflection,我在object类型的对象中有一个System.Windows.Documents.TextSegment类型的对象。我不能在代码中使用TextSegment结构,因为它是.net framework的内部代码 我要做的是,访问TextSegment类型的对象中的Start-and-End属性。我使用以下代码通过反射进行了尝试: // This object is of type TextSegment object textSegment = segments[0]; FieldInfo in

我在object类型的对象中有一个System.Windows.Documents.TextSegment类型的对象。我不能在代码中使用TextSegment结构,因为它是.net framework的内部代码

我要做的是,访问TextSegment类型的对象中的Start-and-End属性。我使用以下代码通过反射进行了尝试:

// 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的值?

代码响起;)

您有一个输入错误(BindingFlags末尾缺少括号),对于BindingFlags,您只需要实例和非公共的,但我找不到真正的问题

也许您需要提供更多的代码,因为我已经检查过了,这对我来说很好:

您是否检查过该值实际上不为空


您可以尝试以下方法吗
var value1=segments.GetType().GetProperties().FirstOrDefault(p=>p.Name==yourPropertyName)不,这不起作用。我的值为空1我刚意识到你想要FieldInfo看看这个Stackoverflow帖子我在想PropertyInfo我看到的和你完全一样。但是我该如何储存这个呢?我无法创建TextPointer或其他对象。如何在属性中获取Start和End的值。这就是问题所在…:(我不太明白。如果value1像那样出现在调试器中,那么您已经拥有了它,否?将其存储在
object
类型的属性中。也许您需要告诉我以后要如何处理它。是的,当然我可以将Start属性存储到object类型的属性中。但是我需要访问Start的具体值。这问题在于。如果我将其存储到对象中,我将无法访问属性。DocumentSequenceTextPointer是一个内部密封类,您将无法将其存储到一个允许您轻松访问其属性的类型中。如果您需要这些属性,您必须再次诉诸反射:
value1.GetType().GetProperty/GetField…