Hantera programinställningar (.NET)
Med programinställningar kan du lagra programinformation dynamiskt. Med programinställningarna kan du använda en klientdator för att lagra information som inte ska ingå i programkoden under körning. Programinställningar kan innehålla anslutningssträngar, användarinställningar med mera.
Anmärkning
Programinställningar ersätter de dynamiska egenskaper som används i tidigare versioner av Visual Studio.
Varje programinställning måste ha ett unikt namn. Namnet kan vara valfri kombination av bokstäver, siffror eller understreck. Namnet kan inte börja med ett tal och det kan inte ha blanksteg. Namnet ändras via egenskapen Name
.
Programinställningar kan lagras som vilken datatyp som helst som kan serialiseras till XML eller som har en TypeConverter
som implementerar ToString
/FromString
. De vanligaste typerna är String
, Integer
och Boolean
. Du kan också lagra värden som Color, Objecteller som en anslutningssträng.
Programinställningarna innehåller också ett värde. Värdet anges med egenskapen Value och måste matcha datatypen för inställningen.
Dessutom kan programinställningar bindas till en egenskap för ett formulär eller en kontroll vid designtillfället.
Det finns två typer av programinställningar baserat på omfång:
Inställningar för programomfattning kan användas för information, till exempel en URL för en webbtjänst eller en databasanslutningssträng. Dessa värden är associerade med programmet. Därför kan användarna inte ändra dem vid körning.
Inställningar med användaromfattning kan användas för information som att bevara den sista positionen för ett formulär eller en teckensnittsinställning. Användare kan ändra dessa värden vid körning.
Du kan ändra typen av inställning med hjälp av egenskapen Scope.
Projektsystemet lagrar programinställningar i två XML-filer:
En app.config fil som skapas vid designtillfället när du skapar den första programinställningen
En user.config fil som skapas vid körning när användaren som kör programmet ändrar värdet för alla användarinställningar
Ändringar i användarinställningarna skrivs inte till disk om inte programmet specifikt anropar en metod för att göra det.
Skapa programinställningar vid designtillfället
Vid designtillfället kan du skapa programinställningar på två sätt:
Använd sidan Inställningar i Project Designer.
Använd fönstret Egenskaper för ett formulär eller en kontroll, vilket gör att du kan binda en inställning till en egenskap.
När du skapar en inställning med programomfattning (till exempel en databasanslutningssträng eller en referens till serverresurser) sparar Visual Studio den i filen app.config med taggen <applicationSettings>
. Anslutningssträngar sparas under taggen <connectionStrings>
.
När du skapar en inställning med användaromfattning (till exempel standardteckensnitt, startsida eller fönsterstorlek) sparar Visual Studio den i app.config fil med taggen <userSettings>
.
Viktig
När du lagrar anslutningssträngar i app.configbör du vidta försiktighetsåtgärder för att undvika att avslöja känslig information, till exempel lösenord eller serversökvägar, i anslutningssträngen.
Om du använder information om anslutningssträngar från en extern källa, till exempel en användare som tillhandahåller sitt användar-ID och lösenord, kontrollerar du att de värden som du använder för att konstruera anslutningssträngen inte innehåller ytterligare parametrar för anslutningssträngar som ändrar beteendet för anslutningen.
Överväg att använda funktionen Skyddad konfiguration för att kryptera känslig information i konfigurationsfilen. Mer information finns i Skydda anslutningsinformation.
Not
Eftersom det inte finns någon konfigurationsfilmodell för klassbibliotek gäller inte programinställningar för klassbiblioteksprojekt. Undantaget är ett Visual Studio Tools for Office Runtime DLL-projekt, som kan ha en konfigurationsfil.
Använda anpassade inställningsfiler
Du kan lägga till anpassade inställningsfiler i projektet för bekväm hantering av grupper av inställningar. Inställningar som finns i en enda fil läses in och sparas som en enhet. Lagring av inställningar i separata filer för grupper som används ofta och sällan kan spara tid vid inläsning och sparande av inställningar.
Du kan till exempel lägga till en SpecialSettings.settings fil i projektet. Även om din SpecialSettings
-klass inte exponeras i My
namnområde kan Visa kod läsa filen med anpassade inställningar som innehåller Partial Class SpecialSettings
.
Settings Designer söker först efter filen Settings.settings som projektsystemet skapar. Den här Settings.settings filen är standardfilen som Project Designer visas på fliken Inställningar. Filen Settings.settings finns i mappen My Project för Visual Basic-projekt och i mappen Egenskaper för Visual C#-projekt. Project Designer- söker sedan efter andra inställningsfiler i projektets rotmapp. Därför bör du placera filen med anpassade inställningar där. Om du lägger till en .settings fil någon annanstans i projektet kan Project Designer inte hitta den.
Få åtkomst till eller ändra programinställningar vid körning i Visual Basic
I Visual Basic-projekt kan du komma åt programinställningar vid körning med hjälp av My.Settings
-objektet. På sidan Inställningar väljer du knappen Visa kod för att visa filen Settings.vb.
Settings.vb definierar klassen Settings
, vilket gör att du kan hantera dessa händelser i inställningsklassen:
Klassen Settings
i Settings.vb är en partiell klass som endast visar den användarägda koden, inte hela den genererade klassen. Mer information om hur du kommer åt programinställningar med hjälp av My.Settings
-objektet finns i Access-programinställningar (.NET Framework).
Värdena för alla inställningar med användaromfattning som användaren ändrar vid körning, till exempel positionen för ett formulär, lagras i en user.config fil. Standardvärdena sparas fortfarande i app.config.
Om några inställningar med användaromfattning ändras under körningen, till exempel när programmet testas, och du vill återställa inställningarna till standardvärdena, väljer du knappen Synkronisera.
Vi rekommenderar att du använder My.Settings
-objektet och standardinställningen .settings för att komma åt inställningarna. Du kan använda Settings Designer för att tilldela egenskaper till inställningar, och dessutom sparas användarinställningarna automatiskt innan programmet stängs av. Ditt Visual Basic-program kan dock komma åt inställningarna direkt. I det fallet måste du komma åt MySettings
-klassen och använda en anpassad .settings-fil i projektets rot. Du måste spara användarinställningarna innan du avslutar programmet, som du skulle göra för ett C#-program, enligt beskrivningen i följande avsnitt.
Få åtkomst till eller ändra programinställningar vid körning i C#
På andra språk än Visual Basic, till exempel C#, måste du komma åt Settings
-klassen direkt, som du ser i följande Visual C#-exempel.
Properties.Settings.Default.FirstUserSetting = "abc";
Du måste uttryckligen anropa Save
-metoden för den här omslutningsklassen för att spara användarinställningarna. Vanligen gör du det i händelsehanteraren för Closing
i huvudformuläret. I följande C#-exempel visas ett anrop till metoden Save
.
Properties.Settings.Default.Save();
Allmän information om hur du kommer åt programinställningar via klassen Settings
finns i Översikt över programinställningar (.NET Framework).
Migrera appar från .NET Framework till .NET
.NET Framework använder app.config-filen för att läsa in inställningar för din app, till exempel anslutningssträngar och konfiguration av loggprovider. Modern .NET använder appsettings.json-filen för appinställningar. Mer information om hur du konverterar app.config filer till appsettings.jsonfinns i Modernisera efter uppgradering till .NET från .NET Framework.