2016-04-21 7 views
1

Es wurde versucht, mit NLog eine Protokollierungshelferklasse zu erstellen. Aber ich erhalte den folgenden Fehler beim Erstellen der Eigenschaft.Neue verzögerte Initialisierung

Fehler BC30518 Überlastung Auflösung fehlgeschlagen, da nicht zugänglich ‚Neu‘ kann mit diesen Argumenten

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} 
}) 

Ich wünsche genannt werden, damit es wie folgt verwendet werden.

''' <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 

Antwort

1

Gefunden eine Antwort Dank dafür: 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} 
     })