Split alt .NET-code in designer partielle Klasse
Ich arbeite auf einem älteren .NET code-Basis, hat alle designer-code gefüllt in der gleichen code-Datei, wie mein code (pre - partielle Klassen).
Ist es, einen Mechanismus zu sagen, Visual Studio 2008, zurück zu gehen und umgestalten von designer code in einer X. designer.cs partial class-Datei?
- Dies ist ein doppelter von stackoverflow.com/questions/762528/...
- Ich schrieb mich ein snipper für den code der Designer.cs, das ist ein guter Kompromiss zwischen, es zu tun alle von hand, oder versuchen alles zu automatisieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ich Tat, war komplett manuell:
a) Entfernen Sie die Komponenten Objekt, das Sie vielleicht in Ihrem ursprünglichen Winform. Wenn Sie die Anwendung wurde .NET 1.1 Sie haben so etwas wie dieses:
b) Fügen Sie eine neue Komponenten Objekt in der Designer-Klasse:
c), es sei denn, Sie hatte einen bestimmten dispose-Methode, das ist der standard. Wenn Sie nicht haben eine form der Vererbung, denke ich, dass base.Entsorgen Sie kann Sicherheit entfernt:
d) Kopie alle der code innerhalb der #region vom Windows Form-Designer generierter code dem neuen Designer.cs-Klasse.
e), sollten Sie auch kopieren alle die member-Variablen für alle Objekte (Bezeichnungen, texboxes, etc. dass Sie in den designer).
Werden sollte, dass alle über Sie. Speichern und kompilieren.
Denken Sie daran, dass eine partielle Klasse kann geteilt werden, unter N die Anzahl der Dateien, aber alle müssen DENSELBEN namespace.
Lohnt es sich?
Gut, in meinem Fall, ich hatte ein paar riesige winforms mit Tonnen von code und steuert. VS2008 kroch jedes mal, wenn ich wechselte von/zum designer. Dies machte die code-Ansicht besser. Ich erinnere mich, dass Sie warten, für 3-5 Sekunden, bevor er ein responsive code. Jetzt dauert es 1...
UPDATE:
Tun die Schritte 1 bis 5 und verschieben eines bestehenden oder hinzufügen eines neuen Steuerelements wird nicht automatisch alles bewegen, um den designer.cs-Klasse.
Neue Sachen geht, um die neue Design Klasse, aber die alten Sachen bleibt, wo es war, leider.
Müssen Sie auch schließen und öffnen Sie die Datei (nachdem Sie Hinzugefügt/erstellt die partielle Klasse) für VS zu ziehen, richtig in der Designer; anderenfalls kann das Ergebnis in die leeren Formen gezeichnet wird.
Falls jemand noch auf der Suche nach einer automatisierten Methode, dies zu tun, es ist ein VS-makro hier, das tun die meisten es für Sie.
Ein sehr nettes tool.
Zusammenführen der yourForm.designer.cs yourForm.cs, führen Sie die folgenden Schritte
Bearbeiten
.csproj
im Editor und fügen Sie den folgenden codeHabe ich Glück gehabt mit dem kostenlosen stand-alone-Anwendung DeCodEx (Designer-Code Extractor).
DeCodeEx Belastungen in einem Visual Studio-Projekt, erkennt die Dateien sind WinForms und teilt automatisch designer-code aus der original -
.cs
oder.vb
- Datei in eine neue.designer.cs
oder.designer.vb
Datei.Für große Projekte ist es viel einfacher als zu versuchen, manuell gespalten, die Dateien selbst.
Ist die Lösung, die Datei von der älteren .NET-code 2003/2005? Ich habe versucht zu tun, was Sie reden über den Konvertierungs-Assistenten in VS2008. Während der Konvertierung sollte es versuchen, analysieren Ihre .aspx-Seiten und bauen designer-Dateien für Sie. Was die designer generator hat ein problem mit ist, dass diese älter sind .aspx-Seiten sind so fehlerhafte, dass Sie einfach kann nicht analysiert werden.
Habe ich zu der Erkenntnis gekommen, dass vielleicht versuchen, zu konvertieren alte ASP.NET code bis zu 2.0 oder 3.5 ist, in sich selbst, geht um ein großes Projekt. Ich habe noch nicht eine effektive Methode, um den Faktor aus der designer-code von alten, bestehenden code, so würde ich auch glücklich sein zu erfahren, der hier eine Lösung.
Wenn es WinForms - ich habe ein PowerShell-Skript bearbeitet das Projekt und fügt hinzu .designer.cs für alle Formulare/Steuerelemente.
Würden Sie sich noch bewegen müssen, den designer-code von hand, obwohl (oder verbessern Sie das Skript) - ich hatte nur ein paar Formulare, und es war nicht der Mühe Wert hinzuzufügen, dass auch.
Kann ich nachschauen und es posten, wenn das helfen würde.
Ich wäre daran interessiert zu sehen, was passiert, wenn Sie öffnen eine dieser Formen in den designer und speichern Sie es; oder ändern Sie es und speichern Sie es; oder führen Sie eine der oben nach dem anlegen eines .designer.cs-Datei, die nur eine leere Hülle der partiellen Klasse. Es würde mich nicht überraschen, zu finden, die designer stellen mindestens die änderungen in die .designer.cs-Datei.