Utiliser Reflection pour accéder aux champs privés dans .NET
Reflection offre un mécanisme robuste pour inspecter et interagir avec les composants internes des classes .NET. Une application fréquente consiste à accéder et à modifier des membres privés, tels que des champs. Cet exemple montre comment localiser un champ privé nommé "_bar" marqué avec un attribut [SomeAttribute]
personnalisé.
La clé utilise l'énumération BindingFlags
. La solution combine les drapeaux BindingFlags.NonPublic
et BindingFlags.Instance
, comme illustré ci-dessous :
FieldInfo[] fields = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
BindingFlags.NonPublic
ordonne à GetFields
d'inclure les champs privés dans sa recherche, tandis que BindingFlags.Instance
restreint la recherche aux champs d'instance (à l'exclusion des champs statiques). Cette approche ciblée vous garantit de trouver le champ "_bar" et d'obtenir ses détails, y compris les éventuels attributs associés.
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!