我一個程式集下有2個類,使用反射創建實體一個類可以,一個類為空是怎么回事
Assembly assembly = Assembly.Load("Cjf.Dal");
object obj1 = assembly.CreateInstance("Cjf.Dal.BookInfoDal");
object obj2 = assembly.CreateInstance("Cjf.Dal.BookTypeDal");
assembly 這個是不為空的,obj1可以創建出實體來,可是obj2回傳null是哪里出錯了
uj5u.com熱心網友回復:
你可以打開 Assembly.CreateIntance 的源代碼看看唄。總共也不過3、4行代碼而已。只要有可能,就應該結合 .net framework 源代碼來學習 .net。這是必須的技能。
不然什么才叫做學習過 .net 啊?讀源代碼就可以分得清楚一個程式員在表象之下有沒有潛能了。
uj5u.com熱心網友回復:
能想到的有這么幾種情況1、沒有Cjf.Dal.BookTypeDal這個類,拼錯了
2、Cjf.Dal.BookTypeDal不是public
3、Cjf.Dal.BookTypeDal沒有默認的建構式
4、Cjf.Dal.BookTypeDal是抽象的,不能構造
uj5u.com熱心網友回復:


這是2個類,繼承更實作的介面都一樣,類名我是直接復制的
uj5u.com熱心網友回復:
C# 反射uj5u.com熱心網友回復:
先用MethodInfo[] Minfo = typeof(Cjf.Dal.BookTypeDal).GetMethods(BindingFlags.Instance | BindingFlags.Public);探測下該類有幾個建構式,什么型別,方法CreateInstance(型別,建構式引數string[]),將引數傳進去
還可以用Activator.CreateInstance()實作
uj5u.com熱心網友回復:
回傳null應該可以捕獲到錯誤吧?看看錯誤資訊uj5u.com熱心網友回復:
你是不是啥都不會,沒看到過你正面解決問題,還天天嫌棄這嫌棄那的,你那么厲害咋不去開發個作業系統呢?
uj5u.com熱心網友回復:
網上搜到問題是看解決問題的,不是看這種什么問題不解決,還B叨B叨的.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/106024.html
標籤:C#
上一篇:萌新求大神解答
下一篇:layui tree
