2014-10-02 2 views
0

.aspx 웹 응용 프로그램에서 MVC 응용 프로그램으로 마이 그 레이션 중입니다. 나는 주어진 인터페이스 이름으로 인스턴스를 반환하는 정적 팩토리 메소드가 포함 된 타사 DLL을 가지고정적 팩터 리 메서드가 MVC 컨트롤러에서 객체 인스턴스를 반환하지 않습니다.

:

다음은 마이그레이션하는 동안 문제이다.

컨트롤러 코드 : 여기

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

는 ObjectFactory를가 제 3 자로부터입니다 아래와 같이 정의를 dll을 (더 이상 코드의 자세한 사항은 getInstance 메소드에 사용할 수 없습니다).

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

getInstance 메소드는 .ASPX 응용 프로그램에서 완벽하게 작동 - objBus이 성공적으로 생성됩니다. 그러나 MVC 컨트롤러에서 실행될 때 같은 줄 (컨트롤러 코드)이 objBus를 null로 반환합니다.

무엇이 문제 일 수 있는지 제안하십시오. 아마 .aspx 및 mvc 애플 리케이션의 아키텍처 및/또는 페이지 수명 cyle의 차이 때문일 수 있습니다. 문제에 대한 제안 사항에 크게 감사드립니다.

답변

0

제 3 자 DLL 공급자에게 연락하여 ASP.NET MVC 사용 방법에 대한 설명서를 요청해야한다고 생각합니다.

MVC 프로젝트의 종속성 삽입을 위해 Unity를 사용하여 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

관련 문제