在.net中加载dll的一种错误问题原因及处理
生活随笔
收集整理的這篇文章主要介紹了
在.net中加载dll的一种错误问题原因及处理
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
問題
在一個組件架構(gòu)的應(yīng)用程序中,程序啟動時出現(xiàn)了一個錯誤。錯誤提示如下:
// List 1=== 預(yù)綁定狀態(tài)信息 === 日志: DisplayName = SimpleComponent, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null(Fully-specified) 日志: Appbase = file:///D:/thirdparty/ThirdPartyApp/ThirdPartyApp/bin/Debug/ 日志: 初始 PrivatePath = NULL 調(diào)用程序集: (Unknown)。 === 日志: 此綁定從 default 加載上下文開始。 日志: 正在使用應(yīng)用程序配置文件: D:\thirdparty\ThirdPartyApp\ThirdPartyApp\bin\Debug\ThirdPartyServicePlatformApp.exe.Config 日志: 使用主機配置文件: 日志: 使用 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 的計算機配置文件。 日志: 此時沒有為引用應(yīng)用策略(私有、自定義、分部或基于位置的程序集綁定)。 日志: 相同的綁定已出現(xiàn)過,因 hr = 0x80070002 而失敗。問題根源
這個應(yīng)用是組件架構(gòu)的應(yīng)用,需要將開發(fā)的組件放到應(yīng)用下的相應(yīng)的Components目錄;而且在框架代碼中,在引用設(shè)置中,添加了SimpleComponent庫的引用,
而且使用了類型硬編碼創(chuàng)建對象。
這里2個問題:
1. 執(zhí)行文件的當(dāng)前目錄下,并沒有SimpleComponent庫文件,所以找不到該文件。執(zhí)行時會出錯,如上面的異常情況。
2. 作為組件類框架,不能硬依賴,不需要再引用中添加該庫。
3. 硬編碼產(chǎn)生了硬依賴。不應(yīng)該硬編碼來創(chuàng)建對象。如List 2中的代碼,硬編碼導(dǎo)致硬依賴了。
解決
去除硬依賴,已經(jīng)硬編碼。如DP中的要求,針對接口編程, 而不是針對實現(xiàn)編程。
總結(jié)
以上是生活随笔為你收集整理的在.net中加载dll的一种错误问题原因及处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今天起!暴雪游戏正式开放退款 截止日期6
- 下一篇: 亲自点赞!吉利李书福已上手魅族20新机