Visual Studio 11: Attributs Caller

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 ;)

PRISM et les contrôles Telerik RadControls for WPF

Depuis quelques temps, j'ai eu la chance d'expérimenter PRISM et j'aime bien ce que ce dernier apporte. Mais j'utilise aussi certains contrôles de Telerik pour WPF, en faisant quelques recherches, j'ai remarqué que Telerik à mis à même sa documentation des éléments sur PRISM.

Voici quelques liens intéressants:

Si vous avez d'autres articles intéressants, faites le moi savoir via les commentaires ou ma page de contact