0

Ich versuche, Xamarin PCL-Projekt mit mehreren Ressourcenwörterbüchern in dem gesunden Projekt zu erstellen.XAML über Zeichenfolge in Code hinter Xamarin Forms lesen

Alle Ressourcenwörterbücher haben den gleichen Schlüssel definiert (diese Schlüssel werden als dynamische Ressourcen bezeichnet) in Projekt XAML-Dateien für verschiedene Bildschirme, aber die Werte in jedem Ressource Wörterbuch ist anders (Zweck ist eine separate Ressourcenwörterbuch für spezifische Kundenanforderungen).

An Lage, das Ressourcenverzeichnis ‚s in-Code zu laden, hinter der App.xaml

mit

Current.Resources = new Resource(); Resources.MergedWith = typeof (Verkauf); // Sales.xaml ist ein Ressourcenwörterbuch.

Jetzt versuche ich, den Namen des Ressourcenwörterbuchs aus App.config zu übergeben (mit dem PCLappConfig Nuget-Paket) und den Namen der XAML-Datei zusammen mit ihrem Pfad abzurufen.

Am unfähig, die XAML-Datei in Code zu lesen Behind wie wir in WPF tun verwenden, indem XamlReader.Load mit

Jede Hilfe wirklich geschätzt würde.

Antwort

1

Jedes ResourceDictionary hat seinen eigenen Typ, z. Der Umsatz.

Wenn Sie also den Typ von einem Namen abhängig machen wollen, können Sie den Typ einfach über Reflektion erhalten.

var nameFromConfig = "Sale"; // Change to get from your config file 
var type = Type.GetType(nameFromConfig); 
Current.Resources = new ResourceDictionary(); 
Resources.MergedWith = type; 
+0

der Typ mit Type.GetType (nameFromConfig) kommt immer als null. Ich habe versucht, den Namen in der Konfigurationsdatei mit .xaml und ohne auch zu verwenden. Der Pfad zur Datei ist ebenfalls korrekt eingestellt. –

+0

Sie müssen den vollständigen Namespace für diesen Typ verwenden. –

+0

Ich kann den Typnamen immer noch nicht mit dem vollständigen Namespace abrufen. Hier ist der Code: - var fileName = ConfigurationManager.AppSettings ["testkey"]; Zeichenfolge Datei = @ "C: \ Benutzer \ piyush.poddar \ Dokumente \ Visual Studio 2015 \ Projekte \ App3 \ App3 \ App3 \ App3." + Dateiname; var type = Type.GetType (Datei); Current.Resources = new ResourceDictionary(); Resources.MergedWith = Typ; App.config Eintrag ist wie folgt: - \t \t \t

Verwandte Themen