Accueil > Non classé > Utiliser la « CIA » lorsqu’on cible une version plus ancienne du Framework

Utiliser la « CIA » lorsqu’on cible une version plus ancienne du Framework

Dans ce billet, nous verrons comment utiliser les attributs d’informations de l’appelant (Caller Info Attributes – CIA ) lorsqu’on cible une version plus ancienne du Framework.

Dans le billet précédent, j’ai parlé des attributs d’informations de l’appelant  comme l’une des nouveautés de C# 5 et disponible sous le Framework 4.5.

À supposer que l’on souhaite cibler une version du Framework plus ancien (Par exemple 4), les attributs d’informations de l’appelant ne sont disponibles que dans la version 4.5, que faire? Y a t-il une astuce qui permettrait l’utilisation des attributs d’informations de l’appelant si l’on cible une version ancienne du Framework? Et bien, oui!

Si on définit nos propres attributs et qu’on les placent dans l’espace de noms où le compilateur s’attend à les trouver, on ferra croire au compilateur que nos attributs sont bien présents.

 

Démo :

  • Ajoutons un nouveau projet dans la solution “CallerInformation"

 

 

  • Affichons les propriétés de notre projet et modifions la cible du Framework (Dans notre cas la version 4)

 

  • Ajoutons notre classe d’attributs :
 
namespace System.Runtime.CompilerServices
{
    class CallerInfoAttributes
    {
        //CallerMemberNameAttribute
        [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
        public sealed class CallerMemberNameAttribute : Attribute
        {
        }

        // CallerFilePathAttribute
        [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
        public sealed class CallerFilePathAttribute : Attribute
        {
        }

        // CallerLineNumberAttribute
        [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
        public sealed class CallerLineNumberAttribute : Attribute
        {
        }
    }
}

 

Après compilation et exécution, l’on s’aperçoit que nos attributs ont été pris en compte par le compilateur.

Cette fonctionnalité peut être utilisée pour cibler les versions 2.0, 3.0, 3.5 et 4 du Framework, bien évidemment sous Visual Studio 2012.

N.B. : Le compilateur vérifie uniquement que les trois types d’attributs existent, peu importe la DLL dans laquelle ils se trouvent.

 

Be connected!

Loading

Categories: Non classé Tags:
  1. Pas encore de commentaire
  1. Pas encore de trackbacks


neuf + = 15