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