asp.net trap: 'same' types in different assemblies are not same! # 實際上,如果你在頁面上顯示一下container.dataitem.gettype().assemblyqualifiedname和typeof(myinfo).assemblyqualifiedname就發現問題了。原來存在cache中的對象還是原來的那個assembly中的類型,而再次數據綁定時你將它轉換為的myinfo是在新的assembly中的類型!雖然類型的全稱是相同的,但是由于它來自于兩個不同identity的assembly,因此clr并不認為他們是同樣的類型。而當使用code-behind的時候,你的自定義類型所在的assembly并不會隨著.aspx文件的修改而變化,因此cache中存的對象和你將要轉換的對象也是一致的。這就是所謂的強類型系統嘍(相對而言的有些弱類型系統可能只是通過比對類型的文本相等就認定類型相等)。