Если вы замените использование ConfigurationManager.AppSettings["key"]
на IConfiguration.Item["key"]
, это, по моему мнению, наименее инвазивный путь миграции. Есть еще несколько «причудливых» вариантов в. NET Core, но это должен быть путь наименьшего сопротивления, ИМХО.
Если вам нужна библиотека для работы в обоих. NET Core и. NET Framework-приложений, я бы порекомендовал создать небольшую оболочку вокруг конфигурации, скажем, например,
public interface IAppSettings {
public string this[string key] { get; }
}
, а затем создать две ее реализации, одну для. NET Core и одну для. NET Framework. Что-то вроде
public class WebConfigAppSettings: IAppSettings {
public string this[string key] => ConfigurationManager.AppSettings[key];
}
и один для. NET Core, аналогично:
public class NetCoreAppSettings: IAppSettings {
public NetCoreAppSettings(IConfiguration source) => _source = source;
public string this[string key] => _source[key];
}
Создайте реализации вне вашей общей библиотеки EF.
Затем сделайте так, чтобы классы вашей библиотеки EF, нуждающиеся в настройке, зависели от интерфейса IAppSettings
и использовали IoC / Dependency Injection для внедрения правильной реализации в каждое приложение, использующее библиотеку.