Wir verwenden die DesignSurface und all das gute IDesignerHost Güte in unserem eigenen Designer. Die entworfenen Formen werden dann in unserem eigenen maßgeschneiderten Format beibehalten und alles, was gut funktioniert. Wir möchten auch die Formulare in ein textbasiertes Format exportieren (was wir gemacht haben, da es nicht so schwierig ist).Gibt es eine Möglichkeit, Quellcode wieder in eine CodeCompileUnit umzuwandeln?
Wir möchten diesen Text aber auch wieder in ein Dokument für den Designer importieren, bei dem der Designercode wieder in eine CodeCompileUnit eingefügt wird. Leider ist die Parse-Methode nicht implementiert (aus gutem Grund). Gibt es eine Alternative? Wir möchten nichts verwenden, was auf einer Standard-.NET-Installation nicht vorhanden wäre (wie .NET-Bibliotheken, die mit Visual Studio installiert wurden).
Meine aktuelle Idee ist, den importierten Text zu kompilieren und dann das Formular zu instanziieren und seine Eigenschaften und Steuerelemente auf das Design-Oberflächenobjekt zu kopieren und nur die neue CodeCompileUnit einzufangen, aber ich hoffte, dass es einen besseren Weg gab. Vielen Dank.
UPDATE: Ich denke, dass einige an unserem Fortschritt interessiert sein könnten. So weit, nicht so gut. Ein kurzer Überblick über das, was ich entdeckt habe, ist, dass die Parse-Methode nicht implementiert wurde, weil sie als zu schwierig erachtet wurde. Open-Source-Parser existieren zwar, sind aber nicht vollständig und funktionieren daher nicht in allen Fällen (NRefactory ist einer von denen aus dem SharpDevelop-Projekt, glaube ich), und das Kopieren von Steuerelementen von einer Instanz auf den Designer funktioniert noch nicht. Ich glaube, das liegt daran, dass, obwohl die Steuerelemente der Formularinstanz hinzugefügt werden, die die Designeroberfläche umschließt, die Designeroberfläche ihre Einbeziehung nicht bemerkt. Unser nächster Versuch ist es, cut/paste zu imitieren, um zu sehen, ob das das Problem löst. Offensichtlich ist dies eine große, fiese Lösung, aber wir brauchen es, damit wir den Hit nehmen und nach Alternativen Ausschau halten.
Ich würde gerne die Antwort auch wissen, aber meine Angst ist, dass es keine gibt. – ZeroBugBounce
Ich suche auch wirklich nach einer Lösung dafür. Ich würde gerne neue Funktionen einfach mit vorhandenem Code zusammenführen, vorzugsweise durch Parsen einer Codedatei, und dann Hinzufügen neuer Member, nach denen ich das Skript aus der zusammengeführten CodeCompileUnit erstellen würde. – Statement