我有一個適用於大多數自定義類型的泛型方法。今天我正在建立單元測試。該擴展失敗,類型爲string
。字符串出現兩個公共實例屬性,Length
和Chars
。當我打電話給GetValue
時,它彈出「參數計數不匹配」。反射字符串時引發的參數計數不匹配
我沒有任何需要允許字符串。我可以爲我的通用添加一個足以解決問題的約束嗎?
代碼片斷
public static DataTable ToDataTable<T>(this List<T> items){...
//List<T> generally works...just found it failing out with string
List<string> items = new List<string> { "cookie", "apple", "whatever" };
System.Reflection.PropertyInfo[] props = typeof(string).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);
foreach (var item in items)
{
var values = new object[props.Length];
for (var i = 0; i < props.Length; i++)
{
values[i] = props[i].GetValue(item, null);
}
}
http://stackoverflow.com/questions/3747572/how-do-i-deal-with-arrays-using-reflection – 2012-04-20 20:29:53
@ChrisShain - 我不關注。他們在談論數組。根據MSDN列表不是一個數組。我應該從那個鏈接中得到什麼? –
2012-04-20 20:37:30
Chars屬性是索引器,不能將null作爲第二個參數傳遞。我非常懷疑你想看到這個屬性。 – 2012-04-20 20:43:22