我在类型为Object的对象中有一个类型为'System.Windows.Documents.TextSegment'的对象。我不能在我的代码中使用TextSegment-Struct,因为它是.net-framework的内部代码。
我想做的是访问TextSegment类型的对象中的Start-Property和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的价值?
最佳答案
该代码响起a bell;)...
您有一个拼写错误(BindingFlags末尾缺少括号),而在BindingFlags中,您只需要Instance和NonPublic,但我找不到真正的问题。
也许您需要提供更多代码,因为我已经检查过了,这对我来说很好用:
您是否检查过IS的值实际上不为null?
关于c# - 通过反射访问TextSegment的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15434393/