我已經創建了一個dll,它有一些功能,可以在項目之間共享。不過,我可能需要從引用它的項目中調整dll的設置。在另一個完全不同的解決方案中公開配置設置以供其他項目使用的最佳方式是什麼?創建可以通過使用應用程序進行配置的實用程序dll的最佳方法是什麼?
方面,我曾嘗試:
的appSettings導入
的applicationSettings導入
當前設置,消費解決方案設定值被忽略/不設置,爲什麼呢?
DLL設置
public class ApplicationSettingsRetriever : IApplicationSettingsRetriever
{
public string LogEnvironmentSetting => ConfigurationManager.AppSettings.Get("LogEnvironment");
}
消費者解決方案的app.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<appSettings>
<add key="LogEnvironment" value="local"/>
</appSettings>
</configuration>
如果您想獲得最大的靈活性,您應該接受具有屬於您的「配置」屬性的注入接口。然後,客戶端可以實現他們想要的 - 數據庫,配置文件,無論如何。 – Crowcoder
爲客戶端和dll使用案例添加了設置 – user1732364