【问题标题】:Difference between Set method and SetScoped method in MappedDiagnosticsLogicalContext ClassMappedDiagnosticsLogicalContext 类中 Set 方法和 SetScoped 方法的区别
【发布时间】:2020-08-13 07:31:50
【问题描述】:

在 NLog 中有两个方法 SetSetScopedMappedDiagnosticsLogicalContext

SetScoped 方法是否将范围设置为 - 每个请求,如果是 - Set 方法的范围是什么?

【问题讨论】:

    标签: c# logging nlog


    【解决方案1】:

    SetSetScoped 做的事情基本相同,只是 SetScoped 返回一个 IDisposable,您可以将其用于取消设置值。

    例如与Set

    MappedDiagnosticsLogicalContext.Set("key1", "value1");
    DoSomething();
    MappedDiagnosticsLogicalContext.Remove("key1");
    

    SetScoped

    using(MappedDiagnosticsLogicalContext.SetScoped("key1", "value1"))
    {
        DoSomething();
    }
    

    MappedDiagnosticsLogicalContext (MDLC) 的范围是当前线程和子线程。因此,如果没有删除/处置,它将在这些线程上可用。另见:MDLC docs

    【讨论】:

    • 感谢 Julian 的快速回答 - 感谢您的解释...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 2013-06-12
    • 1970-01-01
    • 2022-11-05
    • 2015-04-17
    相关资源
    最近更新 更多