Notez que les commentaires XML ne sont pas inclus dans le fichier résultant exe/dll, vous devez activer la génération de fichiers xml et distribuez-les aussi. Conservez des attributs pour fournir des informations disponibles sur vos propriétés/méthodes/classes/etc, car les commentaires XML n'ont probablement pas été conçus pour ce que vous essayez de faire.
Quoi qu'il en soit, les commentaires XML ont format suivant:
<?xml version="1.0"?>
<doc>
<assembly>
<name><!-- assembly name here --></name>
</assembly>
<members>
<!-- ... -->
<member name="M:Full.Type.Name.PropertyName">
<summary>
<!-- property summary here -->
</summary>
</member>
<!-- ... -->
</memebers>
</doc>
Donc, si vous voulez encore, vous devez charger votre fichier de commentaires XML et trouver le noeud XML décrivant votre propriété (code non testé, juste pour montrer l'approche):
var a = new MyObject();
var t = a.GetType().GetProperty("City");
string xmlMemberName = "M:" + a.FullName + t.Name;
var xmlDoc = new XmlDocument();
xmlDoc.Load("you_xml_comments_file.xml");
var membersNode = xmlDoc.DocumentElement["members"];
string summary = "";
if(membersNode != null)
{
foreach(XmlNode memberNode in membersNode.ChildNodes)
{
if(memberNode.Attributes["name"].Value == xmlMemberName)
{
summary = memberNode["summary"].InnerText;
break;
}
}
}
Console.WriteLine(summary);
Mise à jour: vous pouvez également inclure votre fichier de commentaires XML en tant que ressource incorporée de sorte que vous ne serez jamais oublier de le distribuer, ou même écrire un petit outil qui transforme fichier de commentaires XML dans .resx Reso XML urces fichier.
Démenés fichier de commentaires XML comme une ressource intégrée:
- permettent la génération de fichiers XML dans les propriétés du projet
chemin du fichier de sortie XML
- définie au répertoire du projet (au lieu de bin/release ou bin/Debug)
- projet
compilation
- dans l'explorateur de projet permettent « Afficher tous les fichiers » et inlude généré fichier xml
- propriétés de fichier ouvert un e l'action de construction mis à « embedded ressources »
Vos commentaires xml sont inclus dans le fichier de montage en tant que ressource un peut être chargé de cette façon:
XmlDocument doc;
using(var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(
"your_default_namespace" + "." + "your_xml_file_name.xml"))
{
doc.Load(stream);
}
Pour générer .resx des commentaires fichier XML:
.resx Format:
<root>
<!-- some header stuff which can be copy-pasted from any other valid .resx -->
<!-- ... -->
<data name="Your_Object_Full_Name_PropertyName" xml:space="preserve">
<value><!-- summary here --></value>
</data>
<!-- ... -->
</root>
Les chaînes peuvent être chargées à partir de ce .resx en utilisant la classe ResourceManager
.
Si vous utilisez ceci dans votre site Web ASP.NET sur IIS Express, assurez-vous de détecter manuellement le chemin. Et si vous ciblez enum, assurez-vous d'utiliser GetMember. Par exemple: var path = Server.MapPath ("~/bin /" + typeof (YourEnumType) .Assembly.GetName(). Nom + ".xml"); var str = typeof (YourEnumType) .GetMember ("EnumMemberName") [0] .GetXmlDocumentation (chemin); – kape123