我有2個使用C#構建的COM +應用程序。他們需要訪問配置,因此爲了獲得它們(因爲它們在服務器上下文中),我將COM +應用程序中的Application Root Directory設置爲包含application.manifest和application.config文件的目錄。我以這種方式構建的第一個組件是有效的第二個組成部分,我沒有在我寫的方式中找到一個有意義的差異,但沒有。COM +組件不能從靜態環境中讀取配置
如果您嘗試從靜態上下文中使用ConfigurationManager.GetSection("unity")
訪問配置,它將返回空值。從非靜態的上下文中調用相同的東西會產生預期的結果(該部分被返回)。由於第一個組件可以正確地從靜態上下文中調用它,所以我做錯了什麼?
工程在DLL 1,但不是在DLL 2:
private static IUnityContainer m_unityContainer = new UnityContainer().LoadConfiguration()
工程在DLL 2:
private IUnityContainer m_unityContainer = new UnityContainer().LoadConfiguration()
或
private IUnityContainer m_unityContainer; public void Process() { m_unityContainer = new UnityContainer().LoadConfiguration(); }