Me gusta cómo String.Format utiliza argumentos para insertar variables en la cadena que está formateando. Esto se llama Formateo compuesto y se trata en MSDN here.¿Cómo puedo hacer mi propio método similar a String.Format utilizando formato compuesto en C#
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 el siguiente método de firma:
void Debug<T>(T message, params Object[] args);
Y, sé que puedo poner en práctica esta sencillamente:
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 destacado resaltado de {0}, {1}, ... ar argu-:
supongo que es ReSharper que es resposible para ellos, y parece que se acaba haciendo caso omiso de los argumentos de formato y sin dar ninguna ayuda "IntelliSense". Esto no es bueno ya que los otros desarrolladores que usarán la fachada esperarán esto.
¿Cómo llego resaltado argumento y "IntelliSense" para los métodos personalizados con formato similar a cómo funcionan:
Console.WriteLine(...)
String.Format(...)
etc...
se agradecería cualquier ayuda.
Sobre la tercera forma de añadir anotaciones - usted puede poner el archivo XML anotación cerca del conjunto, nombrarlo por .ExternalAnnotations.xml y comprometer a sus CVS. Todos los demás desarrolladores lo obtendrán automáticamente durante la actualización. –
derigel
@derigel Buena llamada. Me olvidé de eso. Apuesto a que podrías hacer algo para incluir esto en un paquete NuGet también. Sin embargo, aún recomendaría la opción 2, si está disponible. – cadrell0
Para realizar el paso 2 como se sugiere: http://www.jetbrains.com/resharper/webhelp/Code_Analysis__Annotations_in_Source_Code.html – Oliver