ASP.NET * .resx serialization

I contribute to the I18N project and call to serialize our * .resx files as JSON objects (for some reason).

I am wondering:

  • Is there a way to get a list of all valid keys for a given * .resx file so that we can use HttpContext.GetGlobalResourceObject to capture tokens?
  • If this does not work, does anyone have a suitable solution?
+6
c # serialization internationalization resx
source share
1 answer
Sub ReadRessourceFile() ''#Requires Assembly System.Windows.Forms Dim rsxr As System.Resources.ResXResourceReader = New System.Resources.ResXResourceReader("items.resx") ''# Iterate through the resources and display the contents to the console. Dim d As System.Collections.DictionaryEntry For Each d In rsxr Console.WriteLine(d.Key.ToString() + ":" + ControlChars.Tab + d.Value.ToString()) Next d ''#Close the reader. rsxr.Close() End Sub 

Then you need to add this to the Serializable dictionary, which can then be serialized to JSON using System.Web.Extensions.dll

 Public Class JSONHelper Public Shared Function Serialize(Of T)(ByVal obj As T) As String Dim JSONserializer As System.Web.Script.Serialization.JavaScriptSerializer = New System.Web.Script.Serialization.JavaScriptSerializer() Return JSONserializer.Serialize(obj) End Function Public Shared Function Deserialize(Of T)(ByVal json As String) As T Dim obj As T = Activator.CreateInstance(Of T)() Dim JSONserializer As System.Web.Script.Serialization.JavaScriptSerializer = New System.Web.Script.Serialization.JavaScriptSerializer() obj = JSONserializer.Deserialize(Of T)(json) Return obj End Function End Class 

Edit: C #:

 public void ReadRessourceFile() { //Requires Assembly System.Windows.Forms ' System.Resources.ResXResourceReader rsxr = new System.Resources.ResXResourceReader("items.resx"); // Iterate through the resources and display the contents to the console. ' System.Collections.DictionaryEntry d = default(System.Collections.DictionaryEntry); foreach (DictionaryEntry d_loopVariable in rsxr) { d = d_loopVariable; Console.WriteLine(d.Key.ToString() + ":" + ControlChars.Tab + d.Value.ToString()); } //Close the reader. ' rsxr.Close(); } 

And the JSON helper:

 public class JSONHelper { public static string Serialize<T>(T obj) { System.Web.Script.Serialization.JavaScriptSerializer JSONserializer = new System.Web.Script.Serialization.JavaScriptSerializer(); return JSONserializer.Serialize(obj); } public static T Deserialize<T>(string json) { T obj = Activator.CreateInstance<T>(); System.Web.Script.Serialization.JavaScriptSerializer JSONserializer = new System.Web.Script.Serialization.JavaScriptSerializer(); obj = JSONserializer.Deserialize<T>(json); return obj; } } 
+8
source share

All Articles