Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Arbeitsbereichsebene ist der Ausgangspunkt für codeanalyse und umgestaltung über ganze Lösungen. Innerhalb dieser Ebene unterstützt Sie die Arbeitsbereichs-API bei der Organisation aller Informationen zu den Projekten in einer Lösung in einem einzelnen Objektmodell und bietet Ihnen direkten Zugriff auf Compilerebenenobjektmodelle wie Quelltext, Syntaxstrukturen, semantische Modelle und Kompilierungen, ohne Dateien analysieren, Optionen konfigurieren oder Interprojektabhängigkeiten verwalten zu müssen.
Hostumgebungen, z. B. eine IDE, stellen einen Arbeitsbereich für Sie bereit, der der geöffneten Lösung entspricht. Es ist auch möglich, dieses Modell außerhalb einer IDE zu verwenden, indem einfach eine Lösungsdatei geladen wird.
Arbeitsbereich
Ein Arbeitsbereich ist eine aktive Darstellung Ihrer Lösung als Sammlung von Projekten, die jeweils eine Sammlung von Dokumenten enthalten. Ein Arbeitsbereich ist in der Regel an eine Hostumgebung gebunden, die sich ständig ändert, wenn ein Benutzer Eigenschaften eingibt oder bearbeitet.
Das Workspace bietet Zugriff auf das aktuelle Modell der Lösung. Wenn eine Änderung in der Hostumgebung auftritt, löst der Arbeitsbereich entsprechende Ereignisse aus, und die Workspace.CurrentSolution Eigenschaft wird aktualisiert. Wenn der Benutzer beispielsweise einen Text-Editor eingibt, der einem der Quelldokumente entspricht, verwendet der Arbeitsbereich ein Ereignis, um zu signalisieren, dass sich das Gesamtmodell der Lösung geändert hat und welches Dokument geändert wurde. Sie können dann auf diese Änderungen reagieren, indem Sie das neue Modell auf Richtigkeit analysieren, Bereiche von Bedeutung hervorheben oder einen Vorschlag für eine Codeänderung vornehmen.
Sie können auch eigenständige Arbeitsbereiche erstellen, die von der Hostumgebung getrennt sind oder in einer Anwendung ohne Hostumgebung verwendet werden.
Lösungen, Projekte und Dokumente
Obwohl sich ein Arbeitsbereich jedes Mal ändern kann, wenn eine Taste gedrückt wird, können Sie mit dem Modell der Lösung isoliert arbeiten.
Eine Lösung ist ein unveränderliches Modell der Projekte und Dokumente. Dies bedeutet, dass das Modell ohne Sperren oder Duplizierung freigegeben werden kann. Nachdem Sie eine Lösungsinstanz aus der Workspace.CurrentSolution Eigenschaft abgerufen haben, ändert sich diese Instanz nie. Wie bei Syntaxstrukturen und Kompilierungen können Sie Jedoch Lösungen ändern, indem Sie neue Instanzen basierend auf vorhandenen Lösungen und bestimmten Änderungen erstellen. Damit der Arbeitsbereich Ihre Änderungen widerspiegelt, müssen Sie die geänderte Lösung explizit auf den Arbeitsbereich anwenden.
Ein Projekt ist Teil des gesamten unveränderlichen Lösungsmodells. Sie stellt alle Quellcodedokumente, Analyse- und Kompilierungsoptionen sowie Assembly- und Projekt-zu-Projekt-Verweise dar. In einem Projekt können Sie auf die entsprechende Kompilierung zugreifen, ohne Projektabhängigkeiten zu ermitteln oder Quelldateien zu analysieren.
Ein Dokument ist auch Teil des gesamten unveränderlichen Lösungsmodells. Ein Dokument stellt eine einzelne Quelldatei dar, aus der Sie auf den Text der Datei, die Syntaxstruktur und das Semantikmodell zugreifen können.
Das folgende Diagramm ist eine Darstellung, wie sich der Arbeitsbereich auf die Hostumgebung, Tools und die Art und Art der Bearbeitung bezieht.
Zusammenfassung
Roslyn macht eine Reihe von Compiler-APIs und Arbeitsbereichs-APIs verfügbar, die umfassende Informationen zu Ihrem Quellcode bereitstellen und die volle Genauigkeit mit den Sprachen C# und Visual Basic bieten. Das .NET Compiler Platform SDK senkt die Einstiegsbarriere für die Erstellung codeorientierter Tools und Anwendungen erheblich. Es schafft viele Möglichkeiten für Innovationen in Bereichen wie Metaprogrammierung, Codegenerierung und Transformation, interaktive Verwendung der C#- und Visual Basic-Sprachen und Einbettung von C# und Visual Basic in domänenspezifische Sprachen.