Отличная идея;подобные вещи - это детали, которые облегчают жизнь как авторам, так и потребителям библиотеки!
DotNetOpenAuth делает это
Я знаю, что библиотека DotNetOpenAuth ведет себя так, как выописать.Он использует log4net, но только если он присутствует и настроен потребляющей сборкой.Из файла README.Bin.html:
log4net.dll Если он присутствует и v1.2.10, позволит записывать сообщения журнала, которые выдает эта библиотека.
Также есть информативная страница о том, как настроить ведение журнала DotNetOpenAuth в вашем собственном приложении.
[EDIT] Я проверил их исходный код, и они динамическипроверьте сборку log4net и загрузите + подключите ее, если она есть (в Log4NetLogger.cs & Logger.cs).Как упомянуто в вашем комментарии ниже, им нужен log4net во время компиляции, потому что на него ссылаются в нескольких местах.Умная часть состоит в том, что , поскольку весь код, относящийся к log4net, пропускается при неудачной проверке, не будет проблем runtime , если в сборке log4net отсутствует .
DotNetOpenAuth - проект с открытым исходным кодом, поэтому вы должны иметь возможность имитировать их подход, просматривая их код инициализации.