我有一個非常奇怪的問題。我正在嘗試轉換一個對象,即使在調試模式下它顯示兩個對象是相同的,但它無法投射。下面是代碼Casting:調試模式下的相同類型,但無法投射
if (messageResponse is T)
{
response = (T)messageResponse;
}
在調試模式下我將鼠標懸停是,它的計算結果爲真實的,但它會跳過if塊,去到別的,現在在這裏顯示。此外,當我強制執行到如果塊I得到這個錯誤信息
[A] AutoAnything.BusinessServer.Messages.GetConfigurationSettingMessageResponse
1[AutoAnything.BusinessServer.DataObjects.Settings.ApplicationManager.ApplicationSettings] cannot be cast to [B]AutoAnything.BusinessServer.Messages.GetConfigurationSettingMessageResponse
1 [AutoAnything.BusinessServer.DataObjects.Settings.ApplicationManager.ApplicationSettings] 。類型A來源於位置'C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \'上下文'Default'中的 'AutoAnything.BusinessServer.Messages,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null' Temporary ASP.NET Files \ root \ 2dc64af3 \ f4e18fc8 \ assembly \ dl3 \ 88929564 \ 4b299f15_0bfecb01 \ AutoAnything.BusinessServer.Messages.DLL'。類型B源於位置'C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \'上下文'Default'中的 'AutoAnything.BusinessServer.Messages,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null' Temporary ASP.NET Files \ root \ 2dc64af3 \ f4e18fc8 \ assembly \ dl3 \ 88929564 \ 4b299f15_0bfecb01 \ AutoAnything.BusinessServer.Messages.DLL'。
正如你所看到的物體[A]和[B]被認爲是相同的。有沒有人見過這個?另外,我正在使用反射來調用上面代碼的包含方法。
有無論如何得到這些類型可能是輸出? Trace.WriteLine或其他建議? – Lizzard 2011-04-22 19:43:31
還有什麼關於錯誤信息?這只是一種解釋或是實際的運行代碼? – Lizzard 2011-04-22 19:45:05
我試過Trace.Writeline,它仍然輸出相同的東西,不幸的是 – Lizzard 2011-04-22 19:53:12