Lors de l'utilisation de méthodes d'extension dans le code tout en ciblant .NET 2.0, un ExtensionAttribute personnalisé doit être défini. Cependant, la compilation de la même bibliothèque sous des versions de framework supérieures (.NET 3.0 à 4.0) génère l'avertissement « ExtensionAttribute est défini à plusieurs endroits ».
Exploitez les directives de compilation conditionnelle pour inclure ExtensionAttribute uniquement lorsque vous ciblez .NET 2.0. En introduisant des éléments DefineConstants dans le fichier csproj, vous pouvez définir la valeur TargetFrameworkVersion.
<Project ...> ... <PropertyGroup> ... <DefineConstants Condition=" '$(TargetFrameworkVersion)' == 'v4.0' ">RUNNING_ON_4</DefineConstants> <DefineConstants Condition=" '$(TargetFrameworkVersion)' != 'v4.0' ">NOT_RUNNING_ON_4</DefineConstants> ... </PropertyGroup> ... </Project>
Dans le code, utilisez les directives de préprocesseur #if, #endif, etc. pour définir et utiliser de manière conditionnelle l'ExtensionAttribute en fonction de la cible. version framework.
#if RUNNING_ON_4 Console.WriteLine("RUNNING_ON_4 is set"); #elif NOT_RUNNING_ON_4 Console.WriteLine("NOT_RUNNING_ON_4 is set"); #endif
En faisant cela, vous éliminez l'avertissement et vous assurez que l'ExtensionAttribute n'est inclus que lorsque nécessaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!