Maison >développement back-end >C++ >Comment puis-je récupérer efficacement des propriétés avec un attribut spécifique en C# ?

Comment puis-je récupérer efficacement des propriétés avec un attribut spécifique en C# ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-27 22:28:14588parcourir

How Can I Efficiently Retrieve Properties with a Specific Attribute in C#?

Comment récupérer efficacement des propriétés avec des attributs spécifiques

Considérez la tâche consistant à obtenir une liste de propriétés publiques au sein d'un type spécifié qui possèdent un attribut, appelé MyAttribute. Cet attribut est défini avec AllowMultiple défini sur false, indiquant que chaque propriété peut posséder au plus une instance de l'attribut.

Une approche courante consiste à parcourir les propriétés à l'aide de GetProperties() et à vérifier chaque propriété pour la présence de MonAttribut via GetCustomAttribute[s]. Cependant, cette technique peut s'avérer sous-optimale.

Présentation d'une solution plus efficace

Pour optimiser ce processus de récupération, considérez l'extrait de code suivant :

var props = t.GetProperties().Where(
                prop => Attribute.IsDefined(prop, typeof(MyAttribute)));

Cette approche améliorée utilise la méthode d'extension Where pour filtrer la liste des propriétés, en sélectionnant uniquement celles pour lesquelles l'attribut MyAttribute est défini. Cette technique est plus efficace car elle évite d'instancier des instances d'attribut pour des propriétés qui ne possèdent pas l'attribut souhaité.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn