配接器設定的自訂類型轉換器
如同自訂編輯器,自訂類型轉換器會覆寫其中一個子系的 System.ComponentModel.TypeConverter 類別。 在這裡,轉換器會將格式新增至要保存的值,但不會出現在屬性頁上。 ConvertFrom方法會在字串值周圍加上方括弧,而 ConvertTo方法會移除它們。
下列程式碼為自訂類型轉換器的類別定義:
using System;
using System.ComponentModel;
namespace AdapterManagement.ComponentModel {
public class DesignerTypeConverter : StringConverter {
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) {
return (typeof(String) == destinationType) || base.CanConvertTo (context, destinationType);
}
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) {
if (typeof(String) == destinationType && value is String) {
return ((String)value).TrimStart('[').TrimEnd(']');
}
return base.ConvertTo (context, culture, value, destinationType);
}
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) {
return (typeof(String) == sourceType) || base.CanConvertFrom (context, sourceType);
}
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) {
if (value is String) {
return "["+(String)value+"]";
}
return base.ConvertFrom (context, culture, value);
}
}
}