En C #, est-il un moyen d'accéder à des commentaires xml (les tags dans VS) dans le code source lors de l'exécution?

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

  •  27-10-2019
  •  | 
  •  

Question

Dans Visual Studio, les commentaires xml peut être ajouté à des méthodes / classes pour fournir de la documentation. Voir http://msdn.microsoft.com/en-us/magazine/cc302121. ASPX .

Visual Studio génère des fichiers à partir de ces commentaires xml et les exportations eux, donc ils sont accessibles à coup sûr.

Ma question est, est-il une classe d'une sorte qui nous laissent l'accès au programme, le texte xml lors de l'exécution? (Je pense que la façon dont la force brute est d'analyser les fichiers exportés, mais ce n'est pas une solution propre)

La raison pour laquelle je veux faire est parce que je fais une sorte d'un programme d'aide pour un programme plus vaste, donc je veux transmettre les commentaires xml à l'écran. J'ai le nom de la propriété par la réflexion, donc est-il un moyen de nourrir le dos de nom dans une certaine classe et obtenir la documentation xml?

Je recherche déjà essayé, mais je ne pouvais pas trouver quoi que ce soit. Je pourrais être libellé mal. Est-ce possible?

Était-ce utile?

La solution

Pour autant que je maintenant, les commentaires XML ne sont pas enregistrées sous forme de métadonnées dans le fichier binaire assemblage (.exe ou .dll). La seule option est d'analyser directement le fichier XML généré par Visual Studio.

Autres conseils

Commentaires XML se dépouillé de l'exécutable. - C'est la raison pour laquelle il y a un drapeau spécial du compilateur pour générer la documentation XML à partir d'eux, afin qu'ils ne se perdent pas

Il existe des outils qui vous aideront à générer l'aide HTML et d'autres formats à partir de ces fichiers XML.

DocsByReflection .

// From type.
var typeDoc = DocsService.GetXmlFromType(typeof(Stub));

// From property.
var propertyInfo = typeof(Stub).GetProperty("PropertyWithDoc");
var propertyDoc = DocsService.GetXmlFromMember(propertyInfo);

// From method.
var methodInfo = typeof(Stub).GetMethod("MethodWithGenericParameter");
var methodDoc = DocsService.GetXmlFromMember(methodInfo);

// From assembly.
var assemblyDoc = DocsService.GetXmlFromAssembly(typeof(Stub).Assembly);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top