В интернете об этом часто спрашивают, но до сих пор мое исследование не дало решения. (И, по крайней мере, на данный момент, я не принял решение «это невозможно сделать»).
В самом простом описании я пытаюсь создать файл конфигурации в проекте библиотеки классов .NET, который доступен этой библиотеке классов в любом приложении, которое на него ссылается. Моя настройка может быть упрощена до 3 служб WCF, совместно использующих некоторую доменную логику. Одна из вещей, которыми они делятся, - это введенная зависимость от логгера. В этом случае у меня есть отдельная библиотека, которая реализует регистратор (эта библиотека - то, что вводится), используя log4net.
В этой настройке каждая из 3 служб имеет свой собственный файл конфигурации, и каждый из этих файлов конфигурации должен настраивать log4net. Я пытаюсь полностью абстрагировать log4net в отдельную библиотеку, чтобы эти 3 службы (и будущие службы / приложения, которых будет много) не должны были переносить эту конфигурацию. Все они будут настроены одинаково, поэтому я бы предпочел, чтобы это было в одном месте.
До сих пор мне удалось найти некоторый код, который позволит локализовать библиотеку конфигурационного файла appsetttings (пары ключ / значение), и я могу получить к нему доступ. Но я ищу более полный подход к файлу конфигурации. Log4net имеет пользовательский раздел конфигурации, который больше, чем пары ключ / значение. (Другие разделы конфигурации также будут использоваться в нескольких приложениях, таких как раздел system.serviceModel в общей библиотеке, используемой клиентскими приложениями для подключения к службам WCF).
Имеет ли это смысл? Кто-нибудь раньше придумывал решение для такого рода вещей?