我正在使用內置支持castle的NLog,並試圖找到一種方法在運行時更改連接字符串。城堡和NLog在運行時更改連接字符串
這是我最近的搖擺和錯過,我確定它必須在這一點上完成生命週期,因爲所有的配置都是空的,所以我猜測城堡還沒有連接NLog上的膽量。
private const string NLogConnectionString = "NLogConnection";
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.AddFacility<LoggingFacility>(l => l.UseNLog());
var config = new NLog.Config.LoggingConfiguration();
var dbtarget = config.FindTargetByName("database") as DatabaseTarget;
if (dbtarget != null)
{
dbtarget.ConnectionString = MethodThatGiveMeConnectionString(NLogConnectionString);
}
}
看着this post它可能是一種選擇,而是基於事情已經在這裏做的方式,我不想改變這種狀況,並更喜歡只是直接提供連接字符串NLOG。
looking here我知道我可以在運行時配置這個,但我更喜歡讓大部分設置來自配置文件,然後只是覆蓋連接字符串。
張貼了一個解決方案,但沒有標記爲答案,因爲我很好奇別人可能會想出什麼 – workabyte