2016-04-21 96 views
1

尝试使用NLog创建日志助手类。但是在创建属性时出现以下错误。新的延迟初始化

错误BC30518重载决策失败,因为没有可访问的“新” 可以用这些参数

Private Shared ReadOnly LoggingMap As New Lazy(Of Dictionary(Of TraceLevel, Action(Of String)))(Function() New Dictionary(Of TraceLevel, Action(Of String))() From { 
      {TraceLevel.Info, ClassLogger.Info}, 
      {TraceLevel.Debug, ClassLogger.Debug}, 
      {TraceLevel.[Error], ClassLogger.[Error]}, 
      {TraceLevel.Fatal, ClassLogger.Fatal}, 
      {TraceLevel.Warn, ClassLogger.Warn} 
}) 

我想为它可用于如下调用。

''' <summary> 
''' Get property for Logger 
''' </summary> 
Private ReadOnly Property Logger() As Dictionary(Of TraceLevel, Action(Of String)) 
    Get 
     Return LoggingMap.Value 
    End Get 
End Property 

回答

1

找到答案感谢这样的:nlog Logging Map using VB.Net

Private Shared ReadOnly LoggingMap As New Lazy(Of Dictionary(Of TraceLevel, Action(Of String))) _ 
(Function() New Dictionary(Of TraceLevel, Action(Of String)) From 
      {{TraceLevel.Info, AddressOf ClassLogger.Info}, 
      {TraceLevel.Debug, AddressOf ClassLogger.Debug}, 
      {TraceLevel.Error, AddressOf ClassLogger.Error}, 
      {TraceLevel.Fatal, AddressOf ClassLogger.Fatal}, 
      {TraceLevel.Warn, AddressOf ClassLogger.Warn} 
     })