0

Я пытаюсь понять, как Unity IoC работает в моем веб-приложении. Я создал приложение aps mvc & с использованием шаблона проекта visual studio 2015.Как вызывается UnityWebActivator.start() в приложении asp.net

Использование NuGet i установлено Unity. Изменено конфигурацию Unity для регистрации типов, которые я хотел ввести. Я изначально добавил UnityWebActivator.start() в свой файл global.asax, думая, что он должен быть в старте, но когда я его прокомментирую, все по-прежнему работает.

Как вызывается UnityWebActivator для конфигурирования нового контейнера IoC для единства?

using System.Linq; 
using System.Web.Mvc; 
using Microsoft.Practices.Unity.Mvc; 

[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(WebDirectory.App_Start.UnityWebActivator), "Start")] 
[assembly: WebActivatorEx.ApplicationShutdownMethod(typeof(WebDirectory.App_Start.UnityWebActivator), "Shutdown")] 

namespace WebDirectory.App_Start 
{ 
/// <summary>Provides the bootstrapping for integrating Unity with ASP.NET MVC.</summary> 
public static class UnityWebActivator 
{ 
    /// <summary>Integrates Unity when the application starts.</summary> 
    public static void Start() 
    { 
     var container = UnityConfig.GetConfiguredContainer(); 

     FilterProviders.Providers.Remove(FilterProviders.Providers.OfType<FilterAttributeFilterProvider>().First()); 
     FilterProviders.Providers.Add(new UnityFilterAttributeFilterProvider(container)); 

     DependencyResolver.SetResolver(new UnityDependencyResolver(container)); 

     // TODO: Uncomment if you want to use PerRequestLifetimeManager 
     // Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule(typeof(UnityPerRequestHttpModule)); 
    } 

    /// <summary>Disposes the Unity container when the application is shut down.</summary> 
    public static void Shutdown() 
    { 
     var container = UnityConfig.GetConfiguredContainer(); 
     container.Dispose(); 
    } 
} 
} 

ответ

0

WebActivatorEx.PreApplicationStartMethod вызывает метод запуска на раннем этапе во время инициализации приложения. Вы заметите, что есть также метод выключения, который вызывается, когда приложение заканчивается.

+0

Спасибо, им новичок в .net и еще не выучили все входы и выходы. Я думал, что эти звонки могут быть такими, но хотят подтверждения! – Mike

+0

Это своего рода исключение из правила. В большинстве случаев приложения имеют стандартную отправную точку, но WebActivatorEx является особым случаем, и я не видел, чтобы он использовался очень сильно. Обычно для инъекций зависимостей, но я помню, как другие вещи используют его. – CubeRoot