我有自定義類型命名爲LocalizedString,我需要實現IConvertible接口,因爲當我們序列類型,以我們的數據庫,我們使用Convert.ChangeType,我無法改變這部分代碼。實現IConvertible接口
我所做的是我實現的:
string IConvertible.ToString(IFormatProvider provider)
{
return string.Format(this.ToString());
}
object IConvertible.ToType(Type conversionType, IFormatProvider provider)
{
return Convert.ChangeType(this.ToString(), conversionType);
}
public TypeCode GetTypeCode()
{
return TypeCode.Object;
}
,我就走了所有其他方法與NotImplementedException因爲我沒有任何合理轉換爲其他類型。 (我將最終使他們扔InvalidCastException的,但那是另一回事。)
然而,當我調用Convert.ChangeType(val, pr.__property.PropertyType)
其中val = ""
,pr.__property.PropertyType = {Name = "LocalizedString" FullName = "Sampo.CMS.LocalizedString"}
代碼崩潰,我仍然收到:
無效的轉換,從「System.String '到'Sampo.CMS.LocalizedString'。
我需要做些什麼?我被卡住了。