Click here to Skip to main content
15,884,298 members
Articles / Web Development / ASP.NET

ASP.NET MVC Controller Dependency Injection for Beginners

Rate me:
Please Sign up or sign in to vote.
4.82/5 (129 votes)
31 Dec 2013CPOL9 min read 627K   4.7K   216  
In this article I demonastrate a very simple and straightforward way to inject controller dependency to ASP.NET MVC framework with constructor.
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Mvc4.Components;
using System.ComponentModel.Composition.Primitives;

namespace Mvc4.Controllers
{
    [Export]
    [PartCreationPolicy(CreationPolicy.NonShared)]
    public class HomeController : Controller
    {
        private ILogger _logger;

        public HomeController()
        {
            IControllerFactory factory = ControllerBuilder.Current.GetControllerFactory();
        }

        [ImportingConstructor]
        public HomeController(ILogger logger)
        {
            _logger = logger;
            IControllerFactory factory = ControllerBuilder.Current.GetControllerFactory();
        }
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
            return View();
        }
        void RaiseException()
        {
            throw new MissingMethodException("Method is missed");
        }
        public ActionResult About()
        {
            ViewBag.Message = "Your app description page.";
            return View();
        }
        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";
            return View();
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect
Bangladesh Bangladesh
How do I describe myself to you? How can I explain that this is true?
I am who I am because of you! My work I love you !!

Comments and Discussions