Maison > développement back-end > C++ > Comment puis-je récupérer un nom de propriété à partir d'une expression de lambda en C #?

Comment puis-je récupérer un nom de propriété à partir d'une expression de lambda en C #?

Linda Hamilton
Libérer: 2025-02-01 05:56:08
original
948 Les gens l'ont consulté

How Can I Retrieve a Property Name from a Lambda Expression in C#?

Extraire le nom d'attribut de l'expression lambda

Lorsque vous utilisez l'expression de lambda à l'aide du nom de l'attribut de passage, la récupération du nom d'attribut réel peut être difficile. Cependant, il existe des moyens d'extraire efficacement ces informations.

L'implémentation initiale impliquait l'expression de la conversion de lambda en une expression de membre, en supposant que l'attribut est une chaîne. Cependant, cela ne s'applique qu'aux attributs de chaîne.

Afin de résoudre ce problème, une méthode plus complète est nécessaire, qui peut gérer en même temps des attributs de chaîne et de non-string. La méthode suivante fournit une solution:

<code class="language-csharp">public static PropertyInfo GetPropertyInfo<TSource, TProperty>(
    TSource source,
    Expression<Func<TSource, TProperty>> propertyLambda)</code>
Copier après la connexion
Cette méthode accepte les objets source et les expressions lambda en entrée et renvoie l'objet PropertyInfo qui indique les attributs accessibles. Si l'expression ne cite pas l'attribut, elle provoquera des anomalies.

dans la mise en œuvre de la méthode:

    Il vérifie si le texte de l'expression de Lambda est Memberexpression et si le membre est propriétéInfo. Si la condition n'est pas remplie, elle provoquera des anomalies.
  1. Le type de réflexion de l'attribut est adapté au type de source ou s'il s'agit d'une sous-classe du type de source. Sinon, cela provoquera des anomalies.
En utilisant cette méthode, vous pouvez obtenir en toute sécurité l'objet PropertyInfo à partir de l'expression de lambda pour vous assurer que les attributs des interrogés sont corrects et existaient dans l'objet cible.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal