Я пытаюсь создать повторно используемые методы расширения для класса Startup для ядра asp.net.
Одна вещь, которую я хотел бы сделать, это добавить все различные варианты использованияна основе значений true / false.
Один из примеров - services.AddHttpsRedirection внутри метода ConfigureServices.
Моя проблема заключается в том, что этот метод требует добавления пакета nuget Microsoft.AspNetCore.HttpsPolicy .
Я пытаюсь добавить директиву препроцессора, основанную на наличии этого пакета / dll.
Из того, что я исследовал, этоКажется, мне нужно использовать что-то вроде:
#if HTTPS_POLICY
services.AddHttpsRedirection(options =>
{
//difference options
});
#endif
Но я не могу понять, где я буду устанавливать символ HTTPS_POLICY .
I 'Мы нашли 2 возможных места:
- Используя файл .csproj, я могу установить DefineConstants элементов, используя атрибут Condition.
- Я могу установить условные символы компиляции внутри визуальногостудия.
НоЯ даже не уверен, что эти две вещи разные, они могут быть одинаковыми.
А для варианта 1 я не знаю, как использовать атрибут Condition для поискасуществование ссылки на пакет или dll.
Также учтите, я создаю библиотеку классов, которая будет использоваться другими проектами, и в идеале я не хочу, чтобы эти другие проекты должны были устанавливать условные символы и вещи,
Этого вообще можно добиться, если да, то как?