Не более Global.asax, но OWIN Startup.cs

Поэтому кто-то решил, что global.asax больше не нужен, и мы все должны использовать OWIN. Это ново для меня, и все примеры, которые я нашел до сих пор, сделали бы меня чрезвычайно опытным в показе "привет мира" везде. Хорошо, что это не совсем полезно.

Все наши существующие API REST используют файл global.asax. Кажется, теперь мне нужно перенести это через. Ниже приведено содержимое нашего метода Application_Start():

protected void Application_Start()
    {

        SD.Tools.OrmProfiler.Interceptor.InterceptorCore.Initialize("UnityWebService");
        log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(String.Format("{0}/{1}", System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath, "log4net.config")));
        UnityConfig.RegisterComponents();
        AutoMapperConfig.Configure();
        GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
        GlobalConfiguration.Configure(WebApiConfig.Register);
        GlobalConfiguration.Configuration.Filters.Add(new ExceptionHandlingAttribute());
        GlobalConfiguration.Configuration.Filters.Add(new ValidateModelStateAttribute());
        GlobalConfiguration.Configuration.Filters.Add(new CheckModelForNullAttribute());
        GlobalConfiguration.Configuration.MessageHandlers.Add(new MessageHandlerMain());
    }

Как мне конвертировать это, чтобы оно работало в startup.cs? Это просто прямое преобразование через:

public void Configuration(IAppBuilder app)
    {

    }

Я пропускаю трюк?

заранее спасибо

1 ответ

Решение

Вы можете переместить большинство этих строк без изменений в Configuration метод вашего Startup учебный класс. Что-то вроде следующего должно сделать это:

public void Configuration(IAppBuilder appBuilder)
{
    var config = new HttpConfiguration();
    WebApiConfig.Register(config);
    config.Filters.Add(new ExceptionHandlingAttribute());
    // move other lines over here
    appBuilder.UseWebApi(config);
}
Другие вопросы по тегам