public void SomeMethod() { var localizedString1 = AppResources.MyFirstSring; var localizedString2 = AppResources.AnotherString; }
<#@ template debug="false" hostspecific="true" language="C#" #> <#@ assembly name="System.Core" #> <#@ assembly name="System.Xml" #> <#@ assembly name="System.Xml.Linq" #> <#@ import namespace="System.Linq" #> <#@ import namespace="System.Xml.Linq" #> <#@ import namespace="System.Text" #> <#@ import namespace="System.Collections.Generic" #> <#@ output extension=".cs" #> <# string str = this.Host.ResolvePath("strings\\en-us\\Resources.resw"); System.Xml.Linq.XElement resXml = System.Xml.Linq.XElement.Load(str); // Read a data file here. "%aaa%/string/en-us/Resources.resw" IEnumerable<XElement> appElement = (from dataElements in resXml.Descendants("data") select dataElements); #> using Windows.ApplicationModel.Resources; namespace UniversalApp { public class StringsResourceManager { private static readonly ResourceLoader _resourceLoader = new ResourceLoader(); public StringsResourceManager() { } <# foreach (var element in appElement) { #> public static string <#= element.Attribute("name").Value.Replace(".","_")#> { get { return _resourceLoader.GetString("<#= element.Attribute("name").Value#>"); } } <# } #> } }
public void SomeMethod() { var resourceLoader = new ResourceLoader(); var string1 = resourceLoader.GetString("MyFirstSring"); var string2 = resourceLoader.GetString("AnotherString"); }
public void SomeMethod() { var string1 = StringsResourceManager.MyFirstSring; var string2 = StringsResourceManager.AnotherString; }
Labels: .NET, C#, T4, Universal Apps