我正在玩.NET的BackgroundWorker
類。作爲其功能的一部分,您可以調用名爲ReportProgress
的方法,該方法允許您傳入後臺任務已完成的百分比以及可選的用戶參數。將匿名類型附加到對象;如何檢索它?
最終ReportProgress
調用一個事件處理程序,可選的用戶參數成爲事件參數的「UserState」成員。
這裏有一個快速的樣品的情況下,我沒有說清楚:
BackgroundProcess.ReportProgress(100, new{title="complete"});
/*****later on, this method is called******/
private void myEventHandler(object sender, RunWorkerCompletedEventArgs e)
{
//e.UserState is my anonymous type defined in the call to ReportProgress(...)
}
我的問題是,我怎麼能訪問我的匿名類型的「稱號」的價值?我假設我需要使用反射,但到目前爲止我沒有很好的運氣。
我知道這很煩人,不得不定義愚蠢的一次性類型,但到目前爲止,最習慣和最乾淨的解決方案將是在這裏定義一個具有title屬性的命名類型。爲什麼要反思? – mquander 2011-05-11 22:08:04
但是如果你只需要標題,爲什麼要定義一個對象呢?只需傳遞一個字符串並將其轉換爲事件處理函數中的字符串。 – 2011-05-11 22:36:03
你的問題是完全有效的,但在這一點上對我來說這是一個學術問題 - 我一直在擺弄這樣的反思,每次我想我都有,但我沒有。 – larryq 2011-05-11 23:06:33