Obtenez la propriété Nom de ReturnParameter d'un objet RuntimeMethodInfo utilisant la réflexion (C #)

StackOverflow https://stackoverflow.com/questions/9352066

Question

Supposons que j'ai la classe suivante en C #:

public class B : A
{
    public Int32 B_ID;
    public String B_Value;

    public Int32 getID()
    {
        return B_ID;
    }

    public void setID(Int32 value)
    {
        B_ID = value;
    }
}

Sur la base de la réflexion, puis-je obtenir le nom du champ utilisé par la méthode getID () (et / ou) SETID ()? (Au cas où, [B_ID]) Je codage d'un framework de persistance et il serait utile d'identifier le nom de la clé d'une table, qui est entourée par les deux méthodes ci-dessus.

Il semble que la propriété de ReturnParameter de RuntimeMethodInfo possède une propriété appelée nom qui devrait me aider, mais il est comming nulle.

Pour obtenir cet objet RuntimeMethodInfo, je suis en train de membres d'une instance de la classe B à l'aide BindingFlags énumérations:

  • BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly

Comment puis-je obtenir ce nom de domaine? Ce comportement doit être la même chose avec des propriétés.

Merci à l'avance

Était-ce utile?

La solution

Je crains que est impossible parce que le nom de domaine est la partie du code mis en œuvre et de réflexion n'a pas la moindre idée comment le récupérer. cadres persistants utilisent généralement une sorte de cartographie pour fournir des exemples tels de information.For vous pouvez utiliser un fichier xml ou vous pouvez utiliser attirbutes sur vos champs pour les présenter comme clé ou colonnes de votre table quelque chose comme ceci:

[Table(name="MyTable")]    
public class B : A
    {

[Key(column_name="id")]    
public Int32 B_ID;
        public String B_Value;

        public Int32 getID()
        {
            return B_ID;
        }

        public void setID(Int32 value)
        {
            B_ID = value;
        }
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top