Gabriel Mongeon

Official blog, et sûrement le seul...

Lecture d'une Minute

Une des nouveautés de Visual Studio 11 et du framework 4.5 sont les attributs Caller:

  • CallerMemberName: permet d’obtenir la méthode ou le nom de la propriété de l’appel à la méthode.
  • CallerFilePath: permet d’obtenir le chemin d’accès complet du fichier source qui contient l’appelant. C’est le chemin d’accès de fichier au moment de la compilation.
  • CallerLineNumber: permet d’obtenir le numéro de ligne dans le fichier source vers lequel la méthode est appelée.

Ces attributs permettent d’alléger le code selon certains scénarios, comme par exemple la journalisation(logging) ou lorsque que vous utiliser l’interface INotifyPropertyChanged (comme pour le MVVM) et devez passez le nom de la propriété appelante.

Voici un exemple très simple de leur utilisation dans le cadre de la journalisation:

    class Logger 
    { 
        public static void LogMessage(string msg, 
            [CallerMemberName] string member = "", 
            [CallerFilePath] string file = "", 
            [CallerLineNumber] int line = 0) 
        { 
            string message = String.Format("{0} : Member {1} in file {2} at line {3} = {4}", 
                        DateTime.Now.ToString(), member, file, line, msg); 
            Debug.WriteLine(message); 
            Console.WriteLine(message); 
        } 
    }

Pour inscrire une entrée dans la journalisation, il suffit simplement de fournir le message désiré et les attributs s’occuperont du reste!

class Program 
{ 
        static void Main(string[] args) 
        {
            Logger.LogMessage("Error!!!"); 
            Console.ReadLine(); 
        } 
}

Aussi simple que cela!

Bonne journalisation ;)

Posts Récents