2013-02-21 3 views
1

J'ai une classe comme çaObtenir paramètre constructeur de base d'une classe

public class cmdGetAllCustomers : CommandBase 
{ 
    public cmdGetAllCustomers(WToken token) 
     : base(token, false, typeof(WCustomer)) 
    { 
    } 

    // ... 
} 

Je dois obtenir le type du troisième paramètre du constructeur de base. Dans ce cas, ce serait WCustomer.

J'ai déjà trouvé l'objet CodeClass pour la classe et aussi l'objet CodeFunction qui, à mon sens, représente le constructeur.

Dans CodeFunction il y a CodeParameters, qui décrivent presque ce que je cherche, tous les paramètres du constructeur, à l'exception ceux de la classe de base.

Avez-vous une idée sur la façon d'obtenir ces types avec EnvDTE?

+0

Je n'ai aucune expérience avec EnvDTE, mais comme le 'CodeFunction' représente le constructeur lui-même, je suppose que ce ne contiendra les paramètres de l'appel au constructeur de base. Avez-vous regardé la propriété ['Children'] (http://msdn.microsoft.com/en-us/library/vstudio/envdte.codefunction.children.aspx)? Peut-être que vous pouvez trouver l'appel au constructeur de la classe de base à l'intérieur de cette propriété en tant qu'autre objet 'CodeFunction'? –

+0

Avez-vous voulu dire les enfants de mon CodeClass? Dans ce cas: Il n'y a que la fonction die et toutes les propriétés de cette classe. Malheureusement, pas certains membres de base ou des paramètres. –

+0

Non, je voulais dire les enfants du constructeur, c'est-à-dire de votre instance 'CodeFunction'. –

Répondre

0

S'il s'avère que les solutions apportées dans les commentaires ne sont pas vraiment lisibles, elles ne seront donc pas lues.

Donc, ici est la solution qui a fonctionné pour moi:

Merci, je suis tout le contenu et l'analyse syntaxique. Devrait être la solution! (String functionContent = codeFunction.StartPoint.CreateEditPoint() GetText (codeFunction.EndPoint).)

Questions connexes