1. 程式人生 > >Assembly.LoadFrom載入程式集型別轉換失敗解決方法

Assembly.LoadFrom載入程式集型別轉換失敗解決方法

為了讓我的wcf模組框架支援自定義通道上下文,對程式碼又進行了一次小型的重構,測試時發現型別轉換的錯誤,最後發現是loadfrom引起的。如果向 loadfrom 上下文中載入了一個程式集,則將啟用 loadfromcontext 託管除錯助手 (mda)。因為預設時載入程式集是在defaul上下文的,所以就算是同一個程式集裡,因上下文不同,型別也不同了,所以轉換失敗。最後用assembly.loadfile來解決了此問題。

假設:

a.dll 中有一個介面 interface a
b.dll 中有一個類實現了該介面 class b : a
c.exe 在程式內引用了a.dll

assembly.loadfile只載入相應的dll檔案,比如assembly.loadfile("b.dll"),則載入b.dll,假如b.dll中引用了a.dll的話,a.dll並不會被載入。
assembly.loadfrom則不一樣,它會載入dll檔案及其引用的其他dll,比如上面的例子,a.dll也會被載入。

ps:補充閱讀:http://blog.csdn.net/guxiaoshi/article/details/5009604

相關推薦

Assembly.LoadFrom載入程式型別轉換失敗解決方法

為了讓我的wcf模組框架支援自定義通道上下文,對程式碼又進行了一次小型的重構,測試時發現型別轉換的錯誤,最後發現是loadfrom引起的。如果向 loadfrom 上下文中載入了一個程式集,則將啟用 loadfromcontext 託管除錯助手 (mda)。因為預設時載入程式集是在defaul上下文的,所以就

C#寫的64位windows視窗應用程式打包安裝後提示“未能載入檔案或程式‘System.Data.SQLite’”解決方法

網上的圖,總之就是類似這種提示 在理一遍出現這種問題的情況: ------在64位機器下打包成64位的應用程式後安裝執行時出現的,除錯過程中沒有。(不是web專案,web專案同樣問題的解決辦法後面有講) 解決方法: ------將所有引用了這個.DLL檔案的專案-&

將Excel資料匯入到SqlServer及匯入時資料型別轉換失敗解決方案

將資料匯入到SqlServer是很常用的一個功能,而Excel資料來源又是資料匯入功能的常用資料來源,在使用時遇到一些問題,記錄下來防止大家走彎路。 UserInfo表結構以及Excel資料截圖 UserInfo表結構: Excel資料:

微信小程式使用者未授權bug解決方法,微信小程式獲取使用者資訊失敗解決方法

 有問題可以掃碼加我微信,有償解決問題。承接小程式開發。 微信小程式開發交流qq群   173683895  、 526474645 ; 正文: bug示例圖: 導致這個bug的原因是 wx

Assembly.Load()不能載入程式的問題

在程式設計中,使用反射(IoC)是一個很好的架構。在.Net中,System.Reflection名稱空間提供了對反射的支援。然而,很多朋友在使用Assembly.Load()方法時, 卻不能正確裝載程式集。比如,很多朋友在模仿PetShop的框架時,使用這樣的呼叫方式:

關於熱部署Devtools出現同一個型別進行型別轉換失敗的問題

背景: 最近在和學長們做一個小系統,在進行任務排程的設定的時候會出現型別轉換失敗的錯誤,原本是同一個型別的,不應該出現型別轉換失敗的問題,起初以為是序列化的問題,回來發現並不是這個原因, 報錯截圖:   解決方法:  1.如果不是必須使用Devtools的熱部署,可以將相

C# 啟動專案提示不能載入程式

今天在啟動一個專案的時候提示不能載入程式集或其依賴項,而該程式集是經常用到的,排查一個小時後發現,該程式集的平臺目標為x86,而主程式的平臺目標為any cpu。講主程式的平臺目標同樣改為x86即可正常執行。平臺目標所在位置 右鍵專案==>屬性==>生成==>

分析器錯誤資訊: 未能載入程式 app_Web _**** 請確保在訪問該頁之前已經編譯了此程式

這個是asp.net程式在釋出時候選項錯誤導致的問題,就我自己而言,我的網站是在一個虛擬目錄(main)下,但是我是釋出到一個本地目錄下,然後用 這樣來訪問,所以會導致以上問題 網上找到不少人說把bin目錄移動到網站的根目錄也就是http://localhost 所指向的目

利用java反射機制 讀取配置檔案 實現動態類載入以及動態型別轉換

作者:54dabang 在spring的學習過程之中,我們可以看出通過配置檔案來動態管理bean物件的好處(鬆耦合 可以讓零散部分組成一個整體,而這些整體並不在意之間彼此的細節,從而達到了真正的物理上的疏散耦合,而非邏輯,有了IOC之後,我們可以讓SPRING充當各框架

執行儲存過程時報“在嘗試載入程式 ID 65645 時 Microsoft .NET Framework 出錯”,解決方案

新庫是直接複製的模板庫 執行儲存過程時報如下錯 訊息 10314,級別 16,狀態 11,過程sp_Sync_CmsArticleToSearchs,第 30 行在嘗試載入程式集 ID 65645 時 Microsoft .NET Framework 出錯。伺服器可能資源

eclipse Project的屬性Deployment Assembly(支配程式

Eclipse中Project的屬性Deployment Assembly(部署程式集)消失了,不存在了,去哪兒了?   可能的原因主要有2個:    1. 該專案不是web專案,所以不存在Deployment Assembly 屬性。在Eclipse

Unity3D熱更新之C#反射載入程式

用C#反射載入程式集的方式可以動態的從assetBundle資源包或其他資源包里加載指令碼到工程中,即便是原工程中不存在的指令碼。 我這裡就用載入本地assetBundle的方式來進行講解了,載入

C#實戰017:Excel操作-計算單元格時出現的型別轉換問題解決

     今天遇到個問題,在A表中提取值a,在B表提取值b,然後再將a、b的值計算到C表中,由於要牽涉到計算,所以要把獲取的資料進行型別轉換,這裡我們本來是想用 Convert.ToInt32進行強制轉換的,結果在運算的時候出現問題,迴圈一次之後就報錯了,而第

devtools導致的型別轉換異常處理方法

問題描述: system.user.model.User cannot be cast to system.user.model.User 用了SpringBoot,整合了 Shrio 來做使用者的認證和授權,也引入了Mybatis的通用外掛等等。   起初並沒有遇到什麼困難,用Shir

Winform部署mshtml 程式出錯的一個解決方案 開發的時候沒有問題 在客戶部署的時候出的問題

部署一個vs2008環境下的Winform應用程式時,因為引用一個Html編輯器,而用到了Microsoft mshtml.dll程式集, 版本為7.0.3300.0,對應檔案在 E:\Vs2008的安裝目錄\Visual Studio Tools for Offic

記錄一次java.lang.ClassCastException的java型別轉換異常解決方案

自己的專案中,有個定時任務的模組,裡面需要將返回的物件強轉為某個實體類JobModel,可是在轉換的過程中,卻報出了java.lang.ClassCastException: com.jy.admin.server.mo

Winform 部署mshtml程式出錯的一個解決方案

在部署一個vs2008環境下的Winform應用程式時,因為引用一個Html編輯器,而用到了Microsoft mshtml.dll程式集, 版本為7.0.3300.0,對應檔案在 E:/Vs2008的安裝目錄/Visual Studio Tools for Office

Asp.net中強簽名dll:引用程式沒有強名稱解決辦法

本文呢,意在和大家共同學習一下如何對自己的Dll檔案實現強簽名,在一定程度上防止別人反編譯和破解,具體為專案新增強名稱方法如下三步走: 1.右鍵單擊專案,開啟屬性視窗; 2.在屬性窗口裡選擇《簽名》標籤,選中為程式集簽名的選項,在下拉列表裡選擇新建,如下圖所示:  

Ubuntu使用SSH共享失敗解決方法

1.5 3.1 inux -1 hab 動態ip 通過 安裝 9.png VMware上Ubuntu使用SSH共享失敗,出現以下錯誤: The host‘192.168.59.128‘is unreachable, the host may be down,or there

ORA-12638: 身份證明檢索失敗 解決方法

nav ref fig tle mage 連接 man 技術分享 rac 用PL/SQL或Navicat連接本地或遠程Oracle數據庫的時候報錯:ORA-12638: 身份證明檢索失敗 解決方法: 開始 -> 所有程序 -> Oracle - Oracle_