目前我正在試圖實現使用TypeBuilder動態創建,從本身從的DbContext派生的類派生新類的類(督察動態類間接繼承從DbContext)。GetMethod得到的Dispose(BOOL處置)動態
要覆蓋(與DefineMethod + DefineMethodOverride)的處置類我首先需要找回它使用GetMethod。我能夠通過檢索SaveChanges()
方法如下:
typeof(TBaseDbContext).GetMethod("SaveChanges")
然而的Dispose(BOOL處置)是完全不同的,因爲它是受保護的,有爭論。
縮小在我來到了下面的代碼的問題:
MethodInfo disposeOfBase =
typeof(DbContext).GetMethod("Dispose",
BindingFlags.NonPublic,
null,
CallingConventions.Any,
new Type[] { typeof(bool) },
null);
結果在disposeOfBase爲空。我嘗試過不同的組合,但我認爲上面應該接近正確。我不知道爲什麼沒有找到Dispose。
我在這裏做錯了什麼?如何修改代碼以便disposeOfBase擁有受保護的Dispose方法DbContext的信息?
嘗試'BindingFlags.NonPublic | BindingFlags.Instance'。您必須指定實例或靜態來獲取方法。 – Tomer