2013-11-09 50 views
0

我在我使用的自定義序列化程序中將POCO對象轉換爲IDictionary/IEnumerable。它已經使用了大約一年,沒有失敗。不過,我有一個類,它不會像IDictionary/IEnumerable那樣強制轉換。以下所有返回錯誤:POCO不是IDictionary或IEnumerable

(obj is IDictionary); // false 
(obj is IList); // false 
(obj is IEnumerable); // false 

的類定義爲:(名稱變了,有更多的屬性)

internal class MyClass { 
    public int ID; 
    public string Text; 
} 

是怎麼回事?什麼不能將某些對象作爲IDictionaries進行投射?我需要一些方法來通過作爲關鍵/價值商店的屬性來鼓勵,反思不是首選。

+1

你的代碼示例丟失了什麼? MyClass不實現IDictionary。 –

+0

以前工作的對象集合必須已經實現了IDictionary。如果情況並非如此,演員陣容將失敗。目標是什麼樣的集合?你的自定義序列化器的輸出是什麼? – Baldrick

回答

3

您的MyClass未執行IDictionary,因此它不能鑄造到IDictionary。它也不執行IEnumerableIList,所以它也不會投射到它們中的任何一個。

相關問題