這是「問題」。我開發的每個庫都記錄了一些東西,但是我不想要求庫用戶知道這一點,並安裝我將使用的log4net或類似的日誌記錄實現。聰明人如何創建獨立程序集?沒有日誌庫的日誌記錄
記錄輸出對圖書館用戶來說並不重要,除非他或她真的想看到調試/信息輸出。在這種情況下,他會安裝log4net並告訴庫以某種方式通過配置文件使用它。否則,我想運送我的圖書館沒有任何不相關的依賴關係。這可能嗎?有什麼選擇?如果有人需要一個啓用了日誌記錄的庫,他會簡單地用另一個版本覆蓋它。在C++中,我會簡單地創建一對dll/so(帶和不帶日誌記錄)。
那麼你在內部使用log4net?爲什麼你不允許用戶指定他/她想要使用的日誌記錄方法? – Kyro 2011-04-06 00:25:55
是的,它確實隱含地引用它。一般來說,我使用我自己的抽象日誌界面。所以也許我可以動態加載一個適當的日誌庫,如log4net。同樣,我需要在所開發的所有庫中共享ILog接口,所以我必須再次至少發佈MyLibrary.dll + MyCompany.Logging.dll :( – 2011-04-06 00:28:37