Определить тип вызывающего проекта в библиотеке классов.net
Я создал библиотеку классов в Dotnet. Теперь я связал эту библиотеку с различными Клиентами, консольной программой, сервисом, проектом модульного тестирования и веб-сайтом ASP.NET. В некоторых частях мне нужно загрузить определенные файлы (например, шаблоны Excel) с диска. В этом случае расположение для разных проектов вызывающих абонентов отличается.
Итак, мой вопрос: каков наилучший способ узнать, какой тип проекта в настоящее время использует мою библиотеку?
Обнаружить клиент веб-сайта очень просто, мне просто нужно проверить, не является ли System.Web.HttpContext.Current значением Nothing. Но как насчет обнаружения других клиентов?
1 ответ
Даже если вам удастся обнаружить различные типы приложений сейчас, вы никогда не сможете быть уверены, будет ли эта логика работать в будущем.
Я думаю, что лучше не угадать и реализовать другое решение, например:
- использовать пути относительно корневого каталога текущего приложения, например, используя
AppDomain.CurrentDomain.BaseDirectory
( MSDN) - поместите расположение ваших файлов в файл конфигурации приложения (в
appSettings
раздел) и прочитайте его из вашей библиотеки, используяConfigurationManager.AppSettings.Get()
( MSDN)