- using com.abc;
- public IA getA() {
- Assembly a = Assembly.LoadFrom("A.dll");
- Type t = a.GetType("com.abc.A");
- Object o = Activator.CreateInstance(t);
- return (IA)o;
- }
上面這段程式,永遠會在第六行拋出 InvalidCastException,著實令人納悶?用 ildasm.exe 確認過 A.dll 的確有 IA 介面與 A 類別實作,強式名稱與上述程式所參考的也一模一樣,怎麼會有這麼奇怪的錯誤呢?後來看到這篇才令我恍然大悟了,原來第六行的 o 在 Load-From Context, IA 在 Default Context,所以就互相看不到對方,當然就轉不過去啦!
但至今仍不解的是,另外開了個小專案想要重現這個問題,但這錯誤又不會發生?到底還有什麼是我還不知道的?
沒有留言:
張貼留言