我想通過C#中的Convert.ChangeType實現兩個庫類之間的轉換。我可以改變這兩種類型。例如在Guid和byte []之間轉換。我知道Guid提供了一個ToByteArray()方法,但我希望在Guid被轉換爲byte []時調用該方法。這背後的原因是轉換也發生在我無法修改的庫代碼(AseDataAdapter)中。那麼是否可以在兩種類型之間定義轉換規則而不修改兩個類中的任何一個的源代碼?將自定義類型轉換爲.NET庫類
我用的TypeConverter嘗試,但似乎並沒有工作,要麼:
Guid g = new Guid();
TypeConverter tc = TypeDescriptor.GetConverter(typeof(Guid));
byte[] b2 = (byte[])tc.ConvertTo(g, typeof(byte[])); // throws exception
變量TC被設置爲System.ComponentModel.GuidConverter不支持轉換爲byte []。我可以爲同一班級安裝兩臺TypeConverters嗎?即使我可以,也不需要在類的源代碼中添加一個屬性來分配TypeConverter?
感謝
據我所知,有TypeConverterAttribute沒有裝配級使用;你可以做每個類型和每個屬性,並通過TypeDescriptor重寫 - 但沒有集合級別?我錯過了什麼嗎? – 2009-03-03 16:06:19
TypeConverterAttribute被聲明爲AttributeTargets.All ...和ISTR看到這在WF中使用。 – Richard 2009-03-04 08:57:34