Plik Opcji użytkownika rozwiązania (suo)
Plik opcji użytkownika rozwiązania (suo) zawiera opcje rozwiązania dla użytkownika. Ten plik nie powinien być zaewidencjonowany do kontroli kodu źródłowego.
Plik opcji użytkownika rozwiązania (suo) jest magazynem ustrukturyzowanym lub plikiem złożonym przechowywanym w formacie binarnym. Informacje o użytkowniku są zapisywane w strumieniach o nazwie strumienia będącego kluczem, który będzie używany do identyfikowania informacji w pliku suo. Plik opcji użytkownika rozwiązania służy do przechowywania ustawień preferencji użytkownika i jest tworzony automatycznie, gdy program Visual Studio zapisuje rozwiązanie.
Po otwarciu pliku suo środowisko wylicza wszystkie aktualnie załadowane pakiety VSPackage. Jeśli pakiet VSPackage implementuje IVsPersistSolutionOpts interfejs, środowisko wywołuje LoadUserOptions metodę w programie VSPackage z prośbą o załadowanie wszystkich danych z pliku suo.
Odpowiedzialność za pakiet VSPackage polega na tym, jakie strumienie mogły zostać zapisane w pliku suo. Dla każdego napisanego strumienia pakiet VSPackage wywołuje z powrotem do środowiska LoadPackageUserOpts w celu załadowania określonego strumienia identyfikowanego przez klucz, który jest nazwą strumienia. Następnie środowisko wywołuje z powrotem do pakietu VSPackage, aby odczytać ten konkretny strumień przekazujący nazwę strumienia i IStream
wskaźnik do LoadPackageUserOpts metody.
W tym momencie jest wykonywane kolejne wywołanie, aby LoadUserOptions
sprawdzić, czy istnieje inna sekcja pliku suo, który musi zostać odczytany. Ten proces będzie kontynuowany do momentu, aż wszystkie strumienie danych w pliku suo zostały odczytane i przetworzone przez środowisko.
Po zapisaniu lub zamknięciu rozwiązania środowisko wywołuje SavePackageSolutionProps metodę ze wskaźnikiem do SaveUserOptions metody. Element IStream
zawierający informacje binarne do zapisania jest przekazywany do WriteUserOptions metody , która następnie zapisuje informacje w pliku suo i wywołuje SaveUserOptions
metodę ponownie, aby sprawdzić, czy istnieje inny strumień informacji do zapisu w pliku suo.
Te dwie metody SaveUserOptions
i WriteUserOptions
, są wywoływane rekursywnie dla każdego strumienia informacji, które mają być zapisywane w pliku suo, przekazując wskaźnik do IVsSolutionPersistence
. Są one wywoływane rekursywnie, aby umożliwić zapisywanie wielu strumieni w pliku suo. W ten sposób informacje o użytkowniku są utrwalane w rozwiązaniu i gwarantuje, że będzie tam przy następnym otwarciu rozwiązania.