2015-06-21 44 views
0

我是新來的C#和特定反射,我試圖解決一個非常具體的問題。我想用反射來實現下面的代碼(因爲在某些機器中,System.Windows.Forms.DataVisualization.dlls可能不存在,在這種情況下,我將跳過生成圖表)。如何添加到使用反射收集 - C#

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

我想通了,如何加載一個dll,得到它的類類型,獲取/設置它的靜態/非靜態的屬性,使用構造函數來創建對象等通過思考。但是我對如何在集合上調用「add」方法感到迷茫。 說,我有反射對象Chart1和chartTitle,我如何實現使用反射的第三行代碼。

感謝您的幫助。提前致謝。

青蘋果

+0

這裏不需要反思!只需將該代碼放在一個單獨的方法中,並只在該dll可以使用的情況下調用它(甚至可以簡單地......捕獲該異常並傳遞) –

回答

0

如果你已經有了object chart1實例,然後你可以使用

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

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

得到chart1.Titles實例。請使用titles.GetMethod("Add").Invoke(titles, chartTitle);添加新標題。