Uneori ajungem ca unul sau mai multe controale sa fie definite intr-un assembly diferit fata de proiectul MVC 3 pe care il avem. Pentru a putea controla mecanismul de incarcare a controalelor este nevoie sa ne definim propiul nostru controller factory.
Trebuie sa ne definim o clasa care sa implementeze interfata IControllerFactory. In cazul in care vrem sa pastram si vechia functionalitate care exista by default putem sa implementam clasa DefaultControllerFactory si sa facem override la CreateController. Aceasta metoda primeste doi parametrii
Trebuie sa ne definim o clasa care sa implementeze interfata IControllerFactory. In cazul in care vrem sa pastram si vechia functionalitate care exista by default putem sa implementam clasa DefaultControllerFactory si sa facem override la CreateController. Aceasta metoda primeste doi parametrii
- requestContext - care contine date despre request
- controllerName - numele la controller
public class MyControllerFactory : DefaultControllerFactory { public override IController CreateController(
System.Web.Routing.RequestContext requestContext, stringcontrollerName) { return Activator.CreateInstance(
customNamespaceController+controllerName); } }
Portable areas din MVCContrib sunt promitator in sensul asta (http://lostechies.com/erichexter/2009/11/01/asp-net-mvc-portable-areas-via-mvccontrib/), desi merita doar la proiecte complexe..
ReplyDeleteMultumesc de link. O sa ma uit mai in detaliu in seara aceasta.
ReplyDelete