Created
November 2, 2017 16:18
-
-
Save MichaelaIvanova/56618fcad38eb25af1759962a73d8e8a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Autofac; | |
using Autofac.Core; | |
using Autofac.Integration.Mvc; | |
using Autofac.Integration.WebApi; | |
using System.Reflection; | |
using System.Web.Http; | |
using System.Web.Mvc; | |
using tungsten.cms.TungstenServices; | |
using Umbraco.Core; | |
using Umbraco.Core.Services; | |
using Umbraco.Web; | |
namespace tungsten.cms.AppStarting | |
{ | |
public class AutofacStartup | |
{ | |
public static void RegisterComponents(ApplicationContext applicationContext) | |
{ | |
var builder = new ContainerBuilder(); | |
//Register the UmbracoContext as a factory | |
builder.Register(c => UmbracoContext.Current).AsSelf(); | |
//register umbracoHelper content query | |
builder.RegisterInstance(new UmbracoHelper(UmbracoContext.Current).ContentQuery).As<ITypedPublishedContentQuery>(); | |
//register Umbraco API controllers - required for backoffice to function | |
builder.RegisterApiControllers(typeof(UmbracoApplication).Assembly); | |
//register custom controller | |
builder.RegisterControllers(Assembly.GetExecutingAssembly()); | |
builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); | |
//register all class by default which names correspond to naming convension SomeClass to ISomeClass | |
var servicesAssembly = Assembly.GetAssembly(typeof(ITungstenDictionaryService)); | |
builder.RegisterAssemblyTypes(servicesAssembly).AsImplementedInterfaces(); | |
//register Umbraco services, ovveride deafult bindings | |
builder.RegisterInstance(applicationContext.Services.ContentService).As<IContentService>(); | |
builder.RegisterInstance(applicationContext.Services.LocalizationService).As<ILocalizationService>(); | |
var container = builder.Build(); | |
//setup the webapi dependency resolver to use autofac | |
var resolver = new AutofacWebApiDependencyResolver(container); | |
GlobalConfiguration.Configuration.DependencyResolver = resolver; | |
//setup the mvc dependency resolver to user autofac | |
DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment