我有一個方法讀取一些XML並填充一個對象。這是通過基於XML中的元素名稱映射對象上的屬性名稱的反射完成的。這適用於基本的對象類型,但我努力與枚舉數組。所以我有一個PropertyInfo對象(讓我們調用它的屬性)爲我的枚舉數組屬性,我有一個字符串值(讓我們調用它的值)包含逗號分隔的數字代表枚舉值(例如「1,3,5」 )。通過反射填充一個枚舉數組
我曾嘗試:
property.SetValue(this, value.Split(',').Select(i => int.Parse(i)).ToArray(), null);
和
property.SetValue(this, value.Split(',').Select(i => Enum.ToObject(property.PropertyType.GetElementType(), int.Parse(i))).ToArray(), null);
,但沒有喜悅。在第一個代碼示例中,Select.ToArray的結果是一個int [],然後拋出一個分析錯誤。與第二個類似的情況,但Select.ToArray返回一個對象[],並再次拋出解析錯誤。
我想寫這個,就好像枚舉類型是未知的一樣。
任何想法?
「但沒有快樂」 - 那麼你有兩種方法會發生什麼? –
你用這段代碼得到了什麼?編譯錯誤?運行時錯誤?信息是什麼? –
對不起,添加更多詳細信息。 – CeejeeB