В моем классе WebApiConfig.cs для проекта .NET 4.6.1 WebApi я хочу включить CORS, только если для параметра app в web.config установлено значение true , Обычно я читаю web.config AppSettings, используя класс AppSettings, который преобразует значения из строки в более подходящий тип данных. Я объявляю интерфейс IAppSettings и регистрирую тип с контейнером Autofac DI, который я использую.Как ввести зависимость в класс статической среды в C# WebApi
Однако в этом случае WebApiConfig является статическим классом, а его метод Register вызывается следующим образом: GlobalConfiguration.Configure (WebApiConfig.Register); Я не могу изменить подпись класса GlobalConfiguration.Configure, поэтому я не вижу, как добавить объект IAppSettings, чтобы сделать его доступным в методе Register. Конечно, я могу получить доступ к ConfigurationManager, но это кажется очень взломанным. Конечно, я мог бы объявить AppSettings как статический класс, но это затруднило бы тестирование модулей. Есть ли более чистый способ сделать это?
Вот соответствующий код; - ConfigurationManager линия является один я хочу заменить вызовом класса AppSettings:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
if (System.Configuration.ConfigurationManager.AppSettings.Get("IsCorsEnabled", false))
{
config.EnableCors();
}
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
Большое спасибо за любую помощь !!
Рассмотрим переход на ASP.Net Core, который решает все этих проблем. – SLaks
Спасибо - я рассматривал это, но я обеспокоен тем, что Entity Framework Core не полностью зрелый - слышал, что он еще не поддерживает ленивую загрузку? Я пробовал хостинг .NET Core с таргетингом на .NET 4.6.1, но через 1,5 дня все еще не смог получить очень простое решение с проектом WebApi и работающим с Data (EntityFramework) проектом, похоже, не может найти всеобъемлющего руководства по как создавать проекты и ссылаться на них в этом сценарии - любые ссылки, которые делают это прямолинейно, также несомненно приветствуются! – user756366