¿Cómo hago mi propio método similar a String.Format usando el formato compuesto en C #?
Me gusta cómo String.Format usa argumentos para inyectar variables en la cadena que está formateando. Esto se llama Formateo Compuesto y es discutido por MSDNaquí.
Quiero esta funcionalidad con mi fachada de registro:
string foo = "fancy";
string bar = "message";
log.Debug("My {0} log {1}.", foo, bar)
Mi ILoggerFacade tiene la siguiente firma de método:
void Debug<T>(T message, params Object[] args);
Y, sé que puedo implementar esto de manera muy simple:
ILog m_Log = \\some logging implementation
public void Debug<T>(T message, params Object[] args)
{
m_Log.Debug(String.Format(message, args));
}
Sin embargo, en Visual Studio no obtengo el resaltado de fantasía de los argumentos {0}, {1}, ...:
Supongo que es ReSharper quien es responsable de ellos, y parece que simplemente está ignorando los argumentos de formateo y no da ayuda "intellisense". Esto no es bueno ya que los otros desarrolladores que usarán la fachada estarán esperando esto.
¿Cómo obtengo el resaltado de argumentos y "intellisense" para métodos con formato personalizados similares a cómo funcionan estos:
Console.WriteLine(...)
String.Format(...)
etc...
Cualquier ayuda sería apreciada.