Maison >développement back-end >C++ >Comment ajouter des attributs de validation aux propriétés d'exécution en C# ?

Comment ajouter des attributs de validation aux propriétés d'exécution en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-03 15:58:39515parcourir

How to Add Validation Attributes to Runtime Properties in C#?

Ajout d'attributs aux propriétés d'exécution

Lors de votre tentative d'ajout d'un attribut de validation à une propriété au moment de l'exécution, vous avez rencontré une exception indiquant "La collection était d'une valeur fixe taille." Pour résoudre ce problème, considérez ce qui suit :

Le code que vous avez fourni implique l'appel de la méthode FillAttributes. Cependant, cette méthode particulière attend un tableau d’attributs comme argument, et non un seul attribut. Pour remédier à cela, vous devez modifier votre code pour passer un tableau contenant l'attribut souhaité :

// Create an array of attributes
var attributes = new ValidationAttribute[] { attribute };

// Invoke FillAttribute method
methodInfo.Invoke(propDesc, new object[] { attributes });

Alternativement, vous pouvez contourner entièrement la méthode FillAttributes et affecter directement l'attribut au descripteur de propriété :

// Assign attribute to property descriptor
propDesc.Attributes = new Attribute[] { new RequiredAttribute() };

En fonction du scénario spécifique et de vos préférences de conception, l'ensemble de ces approches devrait vous permettre d'ajouter des attributs aux propriétés au moment de l'exécution sans rencontrer le problème Exception « La collection était d'une taille fixe ».

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