2009-10-05 8 views

Respuesta

17

Solo necesita una clase para actuar como un TextWriter que LINQ to SQL necesita para enviarlo a través del método que desee, p. Ej.

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

Aquí es un poco de escritor de texto que escribí que se lleva a un delegado y despachos a que por lo que utilizar el código de seguridad. Es probable que desee cambiar esta clase, por lo que tomó un registrador, hizo algo de procesamiento/división en el texto y luego lo envió a 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

Impresionante, gracias :) – Jedidja