Sök…


Läser app.config-fil i ett Xamarin.Forms Xaml-projekt

Medan varje mobilplattformar erbjuder sina egna inställningshanterings-api, finns det inga inbyggda sätt att läsa inställningar från en god gammal .net-stil app.config xml-fil; Detta beror på ett gäng goda skäl, särskilt att nätverkets ramkonfigurationshantering är på tungviktssidan, och varje plattform har sitt eget filsystem api.

Så vi byggde ett enkelt PCLAppConfig- bibliotek, snyggt nuget förpackat för din omedelbara konsumtion.

Detta bibliotek använder det härliga PCLStorage- biblioteket

Detta exempel antar att du utvecklar ett Xamarin.Forms Xaml-projekt, där du skulle behöva komma åt inställningar från din delade visningsmodell.

  1. Initiera ConfigurationManager.AppSettings på vart och ett av ditt plattformsprojekt, precis efter "Xamarin.Forms.Forms.Init" -förklaringen, enligt nedan:

iOS (AppDelegate.cs)

global::Xamarin.Forms.Forms.Init();
ConfigurationManager.Initialise(PCLAppConfig.FileSystemStream.PortableStream.Current);
LoadApplication(new App());

Android (MainActivity.cs)

global::Xamarin.Forms.Forms.Init(this, bundle);
ConfigurationManager.Initialise(PCLAppConfig.FileSystemStream.PortableStream.Current);
LoadApplication(new App());

UWP / Windows 8.1 / WP 8.1 (App.xaml.cs)

Xamarin.Forms.Forms.Init(e);
ConfigurationManager.Initialise(PCLAppConfig.FileSystemStream.PortableStream.Current);
  1. Lägg till en app.config-fil till ditt delade PCL-projekt och lägg till dina appSettings-poster, som du gör med alla app.config-filer
<configuration>
    <appSettings>
        <add key="config.text" value="hello from app.settings!" />
    </appSettings>
</configuration>
  1. Lägg till denna PCL app.config-fil som en länkad fil på alla dina plattformsprojekt. För Android, se till att ställa in build-åtgärden till 'AndroidAsset' , för UWP ställer du in build-åtgärden till 'Content'

  2. Öppna din inställning: ConfigurationManager.AppSettings["config.text"];



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow