如何使用反射添加到集合 - C#

时间:2015-06-21 08:39:42

标签: c# reflection collections add

我是C#的新手和特定的反思,我正在尝试解决一个非常具体的问题。我想使用反射实现以下代码(因为在某些机器中可能不存在System.Windows.Forms.DataVisualization.dlls,在这种情况下我将跳过生成图表)。

Chart chart1 = new Chart();
string chartTitle = "Chart Title";
chart1.Titles.Add(chartTitle);

我想出了如何加载一个dll,获取它的类类型,获取/设置其静态/非静态属性,使用构造函数通过Reflections创建对象等。但我很失落如何调用"添加"集合上的方法。 比方说,我通过Reflection有对象Chart1和chartTitle,我如何使用Reflection实现第3行代码。

感谢您的帮助。提前谢谢。

Green Apple

1 个答案:

答案 0 :(得分:0)

如果您已有$store->medias()->whereHas('likes', function($q) use($user) { return $q->where('user_id', '=', $user->id); }); 个实例,则可以使用

object chart1

object titles = typeof(chart1).GetProperty("Titles").GetValue(chart1);

获取object titles = chart1.GetType().GetProperty("Titles").GetValue(chart1);实例。

然后使用chart1.Titles添加新标题。