2009-10-05 6 views

Répondre

17

Vous avez juste besoin d'une classe pour agir en tant que TextWriter que LINQ to SQL doit distribuer via la méthode que vous voulez, par ex.

db.Log = new ActionTextWriter(s => logger.Debug(s)); 

est ici un écrivain peu de texte je l'ai écrit qui prend un délégué et dépêches à ce que vous utilisez le code ci-dessus. Vous voudrez probablement changer cette classe de sorte qu'il a fallu un enregistreur, a fait un peu de traitement/division sur le texte et l'a ensuite envoyé à NLog.

class ActionTextWriter : TextWriter { 
    private Action<string> action; 

    public ActionTextWriter(Action<string> action) { 
    this.action = action; 
    } 

    public override void Write(char[] buffer, int index, int count) { 
    Write(new string(buffer, index, count)); 
    } 

    public override void Write(string value) { 
    action.Invoke(value); 
    } 

    public override Encoding Encoding { 
    get { return System.Text.Encoding.Default; } 
    } 
} 
+0

Génial, merci :) – Jedidja