3

我在 Object 类型的对象中有一个“System.Windows.Documents.TextSegment”类型的对象。我不能在我的代码中使用 TextSegment-Struct,因为它是 .net 框架的内部代码。

我想要做的是,访问 TextSegment 类型对象中的 Start- 和 End-Property。我使用以下代码通过反射尝试了它:

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

4

1 回答 1

2

该代码敲响了警钟;)...

您有一个错字(BindingFlags 末尾缺少括号),并且在 BindingFlags 中,您只需要 Instance 和 NonPublic,但我找不到真正的问题。

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

在此处输入图像描述

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

在此处输入图像描述

于 2013-03-22T15:50:16.723 回答