Я создал библиотеку классов в Dotnet. Теперь я связал эту библиотеку с различными клиентами, консольной программой, сервисом, модульным тестовым проектом и веб-сайтом ASP.NET. В некоторых частях мне нужно загрузить определенные файлы (например, шаблоны Excel) с диска. В этом случае местоположение для разных проектов вызывающего абонента отличается.Определение типа проекта вызова в библиотеке класса .net
Итак, мой вопрос: что такое лучший способ узнать, какой тип проекта использует моя библиотека?
Обнаружение клиента веб-сайта легко, мне просто нужно проверить, если System.Web.HttpContext.Current не является ничем. Но как насчет обнаружения других клиентов?
Вы говорите, наши общие библиотеки пытается загружать активы из разных мест, в зависимости от проекта, с которым он связан? Если да, вы должны реализовать какой-то IoC. – Krumelur
Поместите расположение шаблонов/файлов в файл конфигурации приложения. Затем вы можете прочитать запись в config из своей библиотеки и не должны угадывать. – M4N
Вы можете проверить имена загруженных сборок или определить тип проекта, проверив предопределенные записи в файлах web.config/app.config ('appsettings'). –