Osman KURT

Kendime Not

MVC C# Factory Kullanımı

Merhaba,

MVC factory nedir?

Bilindiği üzere mvc bir projeye request geldiğinde ilk olarak controller kısmına düşer ve daha sonrasında view işlenir kullanıcıya sonuç döndürülür. Yani kabaca anlatmak gerekirse durum budur. Bizim factory kullanmamızda ki amaç ise request controller kısmına gelmeden karşılamak ve gerekli işlemleri yapmaktır ya da gerekli yönlendirmeyi.

Ben bu gibi durumlar genellikle bir yönlendirme yapmam gerektiğinde kullanıyorum. Sizin kullanım yerinize göre değişim gösterebilir.

Kullanımı ise çok basittir. Oluşturacağınız bir class ve global.asax dosyasında Application_Start kısmın da yapılacak ufak bir düzenleme ile işlem tamamlanacaktır.

Bu aşama da alt kısmıda ki kod işinizi görecektir.

 
public class Factories : DefaultControllerFactory
    {
        public override IController CreateController(RequestContext requestcontext, string controllerName)
        {
            IController controllerObject = null;
            Type controllerType = null;

            if (controllerType == null)
            {
                controllerType = base.GetControllerType(requestcontext, controllerName);
            }

            if (controllerType != null)
            {
                controllerObject = (IController)Activator.CreateInstance(controllerType);
            }

            return controllerObject;
        }
    }
protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ControllerBuilder.Current.SetControllerFactory(typeof(FirstExample.Helpers.Factories));
        }

Breakpoint koyduğunuz takdirde, ilk isteğin factory kısmına düşeceğini göreceksiniz. Artık kontrol sizde.

Osman KURT

Yazılım Uzmanı & Mobil Yazılım Uzmanı