Mi piace il modo in cui String.Format utilizza gli argomenti per inserire le variabili nella stringa che sta formattando. Questo si chiama Composite Formating ed è discusso da MSDN here.Come faccio a rendere il mio metodo simile a String.Format usando Composite Formatting in C#
voglio questa funzionalità con la mia facciata di registrazione:
string foo = "fancy";
string bar = "message";
log.Debug("My {0} log {1}.", foo, bar)
mio ILoggerFacade ha metodo la seguente firma:
void Debug<T>(T message, params Object[] args);
E, so di poter implementare questa molto semplicemente:
ILog m_Log = \\some logging implementation
public void Debug<T>(T message, params Object[] args)
{
m_Log.Debug(String.Format(message, args));
}
Tuttavia, in Visual Studio non riesco a ottenere l'evidenziazione di fantasia di {0}, {1}, ... ar guments:
Credo che sia ReSharper che è resposible per loro, e sembra che si tratta solo ignorando gli argomenti di formattazione e dare nessun aiuto "intellisense". Questo non va bene dato che gli altri sviluppatori che useranno la facciata si aspetteranno questo.
Come ottengo argomento evidenziazione e "intellisense" per metodi personalizzati in formato simile a come funzionano:
Console.WriteLine(...)
String.Format(...)
etc...
Qualsiasi aiuto sarebbe apprezzato.
Circa terzo modo per aggiungere annotazioni - è possibile inserire file xml annotazione vicino al gruppo, il nome è da .ExternalAnnotations.xml e impegnarsi ai tuoi CVS. Tutti gli altri sviluppatori lo otterranno automaticamente durante l'aggiornamento. –
derigel
@derigel Buona chiamata. Me ne sono dimenticato. Scommetto che potresti fare qualcosa per includerlo anche in un pacchetto NuGet. Tuttavia, consiglierei comunque l'opzione 2, se disponibile. – cadrell0
Per eseguire il passaggio 2 come suggerito: http://www.jetbrains.com/resharper/webhelp/Code_Analysis__Annotations_in_Source_Code.html – Oliver