我需要從包含數據的字符串轉換爲使用反射傳遞的某種類型的對象。我有一個不可序列化的對象,其中包含任何類型的屬性,並且我想將數據加載到該對象。如何將字符串轉換爲任何類型的對象?
例如,該對象有一個屬性,Color BgColor
。當我嘗試將「紅色」值設置爲該屬性時,我得到的轉換不可能從字符串轉換爲顏色。我需要一般的代碼。
我需要從包含數據的字符串轉換爲使用反射傳遞的某種類型的對象。我有一個不可序列化的對象,其中包含任何類型的屬性,並且我想將數據加載到該對象。如何將字符串轉換爲任何類型的對象?
例如,該對象有一個屬性,Color BgColor
。當我嘗試將「紅色」值設置爲該屬性時,我得到的轉換不可能從字符串轉換爲顏色。我需要一般的代碼。
沒有不幸的是我知道這件事情,並沒有幫助,它可以將120 System.Web.UI.WebControls.Unit例如?在XML中我有一個字符串和寬度屬性類型是單位 – 2009-09-30 13:28:24
有沒有一個通用的方法?或者我應該使用開關盒或嘗試通過反射來查找解析方法? – 2009-09-30 13:29:54
如果你需要做的是一個字符串轉換爲它的價值在enum
,您可以使用類似於下面的代碼:
public static T ToEnum<T>(this string original)
{
Array values = Enum.GetValues(typeof(T));
foreach (T value in values)
{
if (value.ToString().ToUpperInvariant() == original.ToUpperInvariant())
return value;
}
throw new NotFoundException();
}
如果你需要轉換其他類型的,那麼也許指定字符串的類型和格式可能會幫助人們更好地指導你。
屬性類型不是枚舉總是,我從XML加載ASP.NET控件,並希望從xml值設置所有控件屬性,但ASP.NET以某種方式將129 PX字符串轉換爲UNIT類型,在我的情況下,我得到一個錯誤 – 2009-09-30 13:33:33
非常感謝,它的工作原理 – 2009-09-30 13:43:39