2010-07-19 78 views
0

中調用動態方法我試圖在一個通用存儲庫中使用兩個上下文,我應該調用動態類型爲ObjectContextManager<DynamicType>.GetObjectContext()的靜態方法GetObjectContext()無法從泛型類

private DataContext GetDataContext() 
    { 
     Type type = GetContainerType(); 
     Type paoloGenericClassType = typeof(ObjectContextManager<>).MakeGenericType(type); 

     MethodInfo method = paoloGenericClassType.GetMethod("GetObjectContext", BindingFlags.Static); 
     return method.Invoke(null, BindingFlags.Static, null, null, null) as DataContext; 
    } 

我嘗試了不同的變體,但它不起作用。我怎樣才能做到這一點?

回答

1

我懷疑問題是你的綁定標誌。嘗試BindingFlags.Static | BindingFlags.Public,假設它是一種公共方法。

如果這不起作用,請告訴我們究竟發生了什麼,而不僅僅是說它不起作用。

+0

感謝。我嘗試這個變種 私人DataContext GetDataContext() { 類型type = GetContainerType(); 類型paoloGenericClassType = typeof(ObjectContextManager <>)。MakeGenericType(type); 返回paoloGenericClassType.InvokeMember( 「GetObjectContext」, BindingFlags.Static | BindingFlags.Public | BindingFlags.InvokeMethod,NULL,NULL,新的對象[] {}),爲的DataContext; } 但我有同樣的錯誤。 – Alex 2010-07-19 16:27:32

+0

你可以看到更多的信息http://clip2net.com/page/m0/6878830 – Alex 2010-07-19 16:29:48

+0

@亞歷克斯:那麼你的類型初始化器拋出一個異常,顯然。我建議你在它上面放一個斷點,看看調試器中發生了什麼。 – 2010-07-19 16:54:47