我试图通过PropertyInfo.GetValue()
反射方法检索返回对象的值,该方法包含以下类之一的对象:
Class NDataSeriesDouble: NDataSeries<double>
{}
Class NDataSeriesString: NDataSeries<string>
{}
//代码在运行时获取列表值
GetNthValueOfSereis(int n)
{
NHitTestResult hitTestResult = chartControl.HitTest(mouseXPoint, mouseYPoint)
// Get the sereis type object from Base class of this.
Type seriesType = hitTestResult.Series.GetType();
object seriesValues= seriesType.GetProperty("Values")
.GetValue(hitTestResult.Series, null)
**///How i get value from this object seriesValues**
}
seriesValues对象包含NDataSeriesDouble或NDataSeriesString类对象。
任何建议都将受到赞赏。
先谢谢。
答案 0 :(得分:0)
很难准确理解您的问题,但对于运行时类型转换,您可以使用Convert类。
object result = Convert.ChangeType(value, typeof(MyTypeToConvertTo));
阅读您的其他评论听起来实际上您想要将物品放入其中。您可能只能对它进行预测,如果不是,您可以尝试将seriesValues作为IEnumerable进行转换,然后对其进行预处理,或者尝试在其上调用GetEnumerator并以这种方式枚举值。
答案 1 :(得分:0)
你为什么不把它投到它的班级?
var seriesValues = (Nevron.Chart.NDataSeriesDouble) seriesType
.GetProperty("Values").GetValue(hitTestResult.Series, null);
答案 2 :(得分:0)
最好的方法是向NDataSeries<T>
添加非通用的接口。
如果它不是您的类,并且您在此类型上找不到任何非泛型接口,则需要使用反射。