Supposons que dans Visual Studio, j'ai un nouveau projet qui contient certaines des mêmes API d'un projet plus ancien, et je voudrais copier la documentation xml sur la nouvelle. Est-il possible de le faire sans copier-coller manuellement les uns après les autres?Un moyen de copier des commentaires xml d'un ensemble d'API vers un autre ensemble similaire d'API?
Un moyen de copier des commentaires xml d'un ensemble d'API vers un autre ensemble similaire d'API?
Répondre
Je gère un projet open-source qui implémente une fonctionnalité prenant en charge l'accès par programme aux commentaires de document XML. Voir Jolt.NET pour plus d'informations sur le projet, et plus précisément, "Querying XML Doc Comments" pour la documentation de cette fonctionnalité.
Voici un exemple d'utilisation de la bibliothèque pour implémenter ce que vous recherchez.
using Jolt;
using System.Xml.Linq;
void CopyXmlDocComments(Assembly sourceAssembly)
{
XDocument newDocComments = new XDocument();
XmlDocCommentReader reader = new XmlDocCommentReader(sourceAssembly);
foreach(Type t in sourceAssembly.GetTypes()) // implement type filter here
{
newDocComments.Add(reader.GetComments(t));
}
newDocComments.Save("newAssemblyName.dll.xml");
}
Dans cet exemple, je suppose que vous voulez copier les commentaires doc des types similaires dans deux ensembles. Si vous avez besoin de restreindre la copie à des membres spécifiques, vous pouvez également accomplir cela avec la bibliothèque, bien que vous deviez implémenter la logique de filtrage de méthode vous-même.
Je n'ai jamais entendu parler d'un tel outil. La seule chose que je sais de ce qui est similaire à distance est la capacité de ReSharper à copier des commentaires xmldoc de classes de base à des classes dérivées.
Fonctionne magnifiquement. Merci. Super projet! – Dan7