Ich entschuldige mich für die halbe Antwort, aber um zu sehen, ob dies tatsächlich möglich ist, wird ziemlich viel Zeit in Anspruch nehmen.
Wenn Sie das XML-Format betrachten, ist es ziemlich kryptisch, besonders der Hash-Eintrag, der, wenn Sie löschen, dann wird die IDE den Eintrag löschen (ich habe so viel versucht).
Um es tatsächlich zu automatisieren, müssten Sie die VS-Automatisierungs-APIs EnvDTE verwenden. Die APIs sind ziemlich kryptisch und auch verallgemeinert. Ich konnte keine bestimmte Klasse oder irgendetwas, das sich mit Klassendiagrammen beschäftigt, in der Dokumentation finden.
Wenn es wichtig genug für Sie ist, ein paar Stunden zu verbringen, würden Sie damit beginnen, eines manuell zu erstellen, damit Sie es mit der Automatisierungs-API untersuchen können. Mit dem EnvDTE COM-Objekt (entweder CoCreated oder in einem VS-Makro bereitgestellt) verwenden Sie DTE.Solution.Open, um Ihre Lösung zu öffnen. Verwenden Sie dann DTE.Solution.Projects, um Ihr Projekt mit dem Klassendiagramm zu suchen, und Project.ProjectItems, um die Klassendiagrammdateien zu finden.
Von dort würde ich zuerst sehen, ob die Kind-Eigenschaft auf der ProjectItem etwas Besonderes angezeigt, und dann mit anderen Eigenschaften geifern und reflektieren über die Object-Eigenschaft des ProjectItem, um zu sehen, ob Sie etwas Besonderes bekommen.
Wenn Sie es nur einmal generieren müssen, werfen Sie einen Blick auf die Eigenschaft DTE.Commands, um eine Liste der verfügbaren Befehle zu erhalten. Der Befehl, der durch Klicken mit der rechten Maustaste auf das Menü aufgerufen wird, sollte sich irgendwo befinden. Dann könnten Sie DTE.Windows.Items (Constants.vsWindowKindSolutionExplorer) .Object als UIHeirarchy verwenden, um das Lösungs-Explorer-Fenster zu erhalten und mit UIHeirarchy und UIHeirarchyItem zu experimentieren, um die Dateien auszuwählen und dann den Befehl aufzurufen.
Entschuldigung, ich kann kein vollständiges Beispiel liefern, aber da ich den Tree-Walking-Code nicht zur Hand habe, würde es ein paar Stunden dauern.
Das ist nicht vom Code. –
ja ist es ... der Code ist der Eingang, also, aus dem Code ... ;-P – Shog9
Ich denke, ich verstehe, was Sie jetzt meinen, aber diese Antwort weiß ich nicht. –