2016-04-21 91 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} 
     })