.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Home >> Articles >> Architecture/Pattern >> Post New Resource Bookmark and Share   

 Subscribe to Articles

Unity framework with ASP.Net MVC Framework

Posted By:Dhananjay Kumar       Posted Date: December 10, 2009    Points: 25    Category: Architecture/Pattern    URL: http://www.dotnetspark.com  

Unity framework with ASP.Net MVC Framework


This article will explain step by step that how to inject dependency using UNITY framework in ASP.Net MVC Application

Step 1:

Create a MVC application


Step 2:

Add Unity references to the MVC application.

Step 3:

Idea here is to create a custom controller factory. This custom controller factory will create the controller and inject the dependencies in that. Add a class to the project. Feel free to give any name; here name of the class is CustomUnityControllerFactory.


Extend this CustomUnityControllerFactory class from DefaultControllerFactory class.


Create reference of IUnityContainer. Don't forget to add include namespace Unity.


Create the constructor for CustomUnityControllerFactory and pass reference of Unity Container in that.


Override GetControllerInstance of DefaultControllerFactory. Here we will pass type of the controller , which we are going to create. In parameter of overrideen function we are passing type of the controller to be instanciated.


So the complete CustomUnityControllerFactory class will look like below.



Step 4

Now we need to do something at start up of the application. For that open Global. asax file. We need to modify Application.Start() method.

  • Create instance of IUnityContainer.
  • Create instance of CustomUnityControllerFactory and pass instance of unity container in that.
  • Set the CustomUnityControllerFactory as the default controller factory to be used. For this call Current method on ControllerBuilder and pass instance of CustomUnityControllerFactory in that. (see below code in blue)
  • Compile the application.


    Step 5:

    Now it is time to check that, how Custom Unity Container Factory is working. To test that, we will create a service interface and concrete service class in Model.

    • Right click on Model and add an interface


      Interface contains the below code.

    • Right click on Model and add a class and implement the Message() method.


      Class contains the below code


    Step 6:

    Go to Application_Start() and register the type.


    So, now the complete code at Application Start () will look like


    Step 7:

    Now put a breakpoint at constructor of HomeController and run the application. We could see while debugging that dependency has been injected.


    Now, you can see that dependency has been injected. Now normal routing will process. For Routing and other details of MVP read my articles here.


    I showed how to inject dependency using Unity in MVC application. 

  •  Subscribe to Articles


    Further Readings:


    No response found. Be the first to respond this post

    Post Comment

    You must Sign In To post reply
    Find More Articles on C#, ASP.Net, Vb.Net, SQL Server and more Here

    Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend