2011-10-27 10 views

risposta

8

Questo non può essere fatto attraverso il built-in editor di foglio di stile. Tuttavia si potrebbe scrivere un metodo di estensione che si richiama nel modo seguente:

void Main() 
{ 
    // AdventureWorks 
    Contacts.Select (c => new { c.FirstName, c.LastName, NameStyle = c.NameStyle.RedBlue() }).Dump(); 
} 

static class Extensions 
{ 
    public static object RedBlue (this bool value) 
    {  
     string c = value ? "Blue" : "Red"; 
     return Util.RawHtml ("<span style='color:" + c + "'>" + value + "</span>"); 
    } 
} 

Se si mette il metodo di estensione in un progetto VS e copiare la DLL nella LINQPad plugin cartella, sarà disponibile automaticamente a tutte le domande.

MODIFICA: ora è possibile definire tale metodo nella query "Le mie estensioni" anziché dover creare un progetto in VS.

+0

Il lavoro estensioni classe meravigliosamente in LINQPad quando lo aggiungo a mia domanda, ma compilarlo in una DLL separata non funziona. LINQPad sta dicendo che non ha una definizione per l'estensione. Forse c'è qualcosa che mi è mancato durante la creazione di una lezione in VS. Non voglio prendere il tuo tempo su questo aspetto, perché posso aspettare la versione finale con plug-in. – MADCookie

+1

Presumo che tu abbia controllato le cose ovvie ... la classe è pubblica e il namespace è importato (o più facilmente , puoi definirlo il namespace di primo livello). Stai facendo riferimento manualmente alla DLL da LINQPad o rilasciandola nella cartella dei plug-in? –

+0

Grazie per aver verificato l'ovvio! Non ho impostato il pubblico della classe !! Ops. Grazie per il tuo aiuto e questo ottimo consiglio per migliorare l'output. – MADCookie

3

devo successo con questo blocco di codice in MyExtensions schizzo:

void Main() 
{ 
    (!(true.Dump())).Dump(); 
} 

public static class MyExtensions 
{ 
    public static bool Dump (this bool value) 
    {  
     string c = value ? "Blue" : "Red"; 
     Util.RawHtml ("<span style='color:" + c + "'>" + value + "</span>").Dump(); 
     return value; 
    } 
} 
Problemi correlati