Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
_VSRDTFLAGS. RDT_ReadLock is een vlag die logica biedt voor het vergrendelen van een document in de RDT (Running Document Table), de lijst met alle documenten die momenteel zijn geopend in de Visual Studio IDE. Deze vlag bepaalt wanneer documenten worden geopend en of een document zichtbaar is in de gebruikersinterface of onzichtbaar is in het geheugen.
Over het algemeen gebruikt u _VSRDTFLAGS. RDT_ReadLock wanneer een van de volgende waar is:
U wilt een document onzichtbaar en alleen-lezen openen, maar het is nog niet tot stand gebracht waarvan IVsHierarchy het document eigenaar moet zijn.
U wilt dat de gebruiker wordt gevraagd een document op te slaan dat onzichtbaar is geopend voordat de gebruiker het document in de gebruikersinterface heeft weergegeven en vervolgens heeft geprobeerd het te sluiten.
Zichtbare en onzichtbare documenten beheren
Wanneer een gebruiker een document opent in de gebruikersinterface, moet een IVsHierarchy eigenaar voor het document tot stand worden gebracht en een _VSRDTFLAGS. RDT_EditLock vlag moet worden ingesteld. Als er geen IVsHierarchy eigenaar tot stand kan worden gebracht, wordt het document niet opgeslagen wanneer de gebruiker op Alles opslaan klikt of de IDE sluit. Dit betekent dat als een document onzichtbaar is geopend waar het in het geheugen wordt gewijzigd en de gebruiker wordt gevraagd het document op te slaan bij afsluiten of opslaan als Alles opslaan is gekozen, kan een RDT_ReadLock document niet worden gebruikt. In plaats daarvan moet u een __VSREGDOCLOCKHOLDER gebruiken RDT_EditLock en registreren IVsDocumentLockHolder. RDLH_WeakLockHolder vlag.
RDT_EditLock en documentwijziging
De vorige vlag die wordt vermeld, geeft aan dat de onzichtbare opening van het document zal opleveren RDT_EditLock wanneer het document door de gebruiker wordt geopend in een zichtbaar DocumentWindow. Wanneer dit gebeurt, krijgt de gebruiker een prompt Opslaan te zien wanneer de zichtbare DocumentWindow is gesloten.
Microsoft.VisualStudio.Package.Automation.OAProject.CodeModel implementaties die de IVsInvisibleEditorManager service in eerste instantie gebruiken wanneer er alleen een RDT_ReadLock wordt gebruikt (bijvoorbeeld wanneer het document onzichtbaar wordt geopend om informatie te parseren). Als het document later moet worden gewijzigd, wordt de vergrendeling bijgewerkt naar een zwakke RDT_EditLock. Als de gebruiker het document vervolgens opent in een zichtbaar DocumentWindow, wordt de CodeModelzwakke RDT_EditLock versie vrijgegeven.
Als de gebruiker vervolgens DocumentWindow sluit en Nee kiest wanneer u wordt gevraagd om het geopende document op te slaan, CodeModel worden alle gegevens in het document verwijderd en wordt het document de volgende keer dat er meer informatie nodig is voor het document, opnieuw geopend. De subtiliteit van dit gedrag is een exemplaar waarin de gebruiker het DocumentWindow van het onzichtbare geopende document opent, wijzigt, sluit het en kiest Vervolgens Nee wanneer u wordt gevraagd het document op te slaan. Als het document een document heeft RDT_ReadLock, wordt het document niet daadwerkelijk gesloten en blijft het gewijzigde document onzichtbaar in het geheugen geopend, ook al heeft de gebruiker ervoor gekozen het document niet op te slaan.
Als de onzichtbare opening van het document een zwak RDT_EditLockgebruik maakt, levert het de vergrendeling op wanneer de gebruiker het document zichtbaar opent en er geen andere vergrendelingen worden vastgehouden. Wanneer de gebruiker DocumentWindow sluit en Nee kiest wanneer u wordt gevraagd het document op te slaan, moet het document worden gesloten vanuit het geheugen. Dit betekent dat de onzichtbare client moet luisteren naar RDT-gebeurtenissen om deze gebeurtenis bij te houden. De volgende keer dat het document is vereist, moet het document opnieuw worden geopend.