2014-10-02 39 views
0

我們正在從.aspx web應用程序遷移到MVC應用程序。靜態工廠方法不會在MVC控制器中返回對象實例

下面是在遷移問題:

我有一個第三方的DLL包含靜態工廠方法給出接口名稱返回實例。

控制器代碼:

IBus objBus = (IBus) ObjectFactory.GetInstance("IBus") as IBus; 

在這裏,是的ObjectFactory從第三方DLL來使用如下定義(沒有更多的代碼細節可在getInstance方法)。

public class ObjectFactory 
{ 
    public ObjectFactory(); 
    public static object GetInstance(string interfaceName); 
} 

getInstance方法完全在應用的.aspx - objBus創建成功。 但在MVC控制器中執行時,同一行(控制器代碼)將objBus返回爲null。

請建議可能是什麼問題。 我想這可能是由於.aspx和mvc應用程序的體系結構和/或頁面生命週期不同造成的。 關於這個問題的任何建議,非常感謝。

回答

0

我認爲你應該聯繫你的第三方DLL提供商,並要求提供有關如何使用ASP.NET MVC的文檔。

如果我是你,我會考慮放棄使用Unity爲你的MVC項目的依賴項注入的DLL。您只需在Global.asax的Application_Start方法中使用UnityConfig和DependecyResolver將您的類實例注入到您的任何控制器方法中。

如果您需要詳細信息,請查看這些優秀的文章。

http://netmvc.blogspot.com/2012/04/dependency-injection-in-aspnet-mvc-4.html

http://dotnetslackers.com/articles/aspnet/Using-Microsoft-Unity-in-ASP-NET-MVC.aspx

http://www.codeproject.com/Articles/99361/How-To-Use-Unity-Container-In-ASP-NET-MVC-Framewor