Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MichaelaIvanova/56618fcad38eb25af1759962a73d8e8a to your computer and use it in GitHub Desktop.
Save MichaelaIvanova/56618fcad38eb25af1759962a73d8e8a to your computer and use it in GitHub Desktop.
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