Фреймворк уже обрабатывает это для вас.Используйте System.Configuration.ConfigurationManager.AppSettings
или ConfigurationManager.ConnectionStrings
для чтения строк подключения, и они будут считаны из App.config в WinForms и из Web.config в ASP.NET.Вы можете поместить разные значения в два файла конфигурации.
Что касается более общего вопроса - вы можете проверить System.Web.HttpContext.Current
и, если это не null
, вы определенно работаете внутри ASP.NET.Если это null
, вы , вероятно, не в ASP.NET, но, возможно, просто не находитесь внутри запроса.Вы также можете попробовать проверить некоторые свойства в System.Web.HttpRuntime
.
Редактировать: Если вы не хотите добавлять ссылку на System.Web.dll, вы можете вызвать вышеуказанное черезОтражение: первый вызов Type.GetType("System.Web.HttpContex")
, и если он возвращает null
, то вы определенно не в ASP.NET.Если он возвращает значение, вы можете перейти к статическому свойству Current
.