From 4af05c5f5ad1aba946dd3c428c267b9db5fc9eb8 Mon Sep 17 00:00:00 2001 From: Robert Jordan Date: Wed, 30 Nov 2005 21:58:38 +0000 Subject: [PATCH] 2005-11-30 Robert Jordan * ResXResourceReader.cs, ResXResourceWriter.cs: Made string conversions culture-invariant. * ResXResourceWriter.cs: Fixed AddResource (string, object) to emit the type attribute when the object has a type converter. svn path=/trunk/mcs/; revision=53712 --- .../System.Resources/ChangeLog | 7 +++++++ .../System.Resources/ResXResourceReader.cs | 2 +- .../System.Resources/ResXResourceWriter.cs | 16 ++++++++++++++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/mcs/class/Managed.Windows.Forms/System.Resources/ChangeLog b/mcs/class/Managed.Windows.Forms/System.Resources/ChangeLog index 3c48f2b917f..7a81f96b425 100644 --- a/mcs/class/Managed.Windows.Forms/System.Resources/ChangeLog +++ b/mcs/class/Managed.Windows.Forms/System.Resources/ChangeLog @@ -1,3 +1,10 @@ +2005-11-30 Robert Jordan + + * ResXResourceReader.cs, ResXResourceWriter.cs: Made string conversions + culture-invariant. + * ResXResourceWriter.cs: Fixed AddResource (string, object) to emit + the type attribute when the object has a type converter. + 2005-10-04 Peter Bartok * ResXResourceReader.cs, ResXResourceWriter.cs: Added call diff --git a/mcs/class/Managed.Windows.Forms/System.Resources/ResXResourceReader.cs b/mcs/class/Managed.Windows.Forms/System.Resources/ResXResourceReader.cs index 3e093fcd53f..cd7a6f7983c 100644 --- a/mcs/class/Managed.Windows.Forms/System.Resources/ResXResourceReader.cs +++ b/mcs/class/Managed.Windows.Forms/System.Resources/ResXResourceReader.cs @@ -204,7 +204,7 @@ namespace System.Resources v = c.ConvertFrom (Convert.FromBase64String (val)); } else if (tt != null) { TypeConverter c = TypeDescriptor.GetConverter (tt); - v = c.ConvertFromString (val); + v = c.ConvertFromInvariantString (val); } else if (mt != null) { byte [] data = Convert.FromBase64String (val); BinaryFormatter f = new BinaryFormatter (); diff --git a/mcs/class/Managed.Windows.Forms/System.Resources/ResXResourceWriter.cs b/mcs/class/Managed.Windows.Forms/System.Resources/ResXResourceWriter.cs index b8086c6e516..bfad541ad41 100644 --- a/mcs/class/Managed.Windows.Forms/System.Resources/ResXResourceWriter.cs +++ b/mcs/class/Managed.Windows.Forms/System.Resources/ResXResourceWriter.cs @@ -165,9 +165,16 @@ namespace System.Resources } void WriteString (string name, string value) + { + WriteString (name, value, null); + } + + void WriteString (string name, string value, string typename) { writer.WriteStartElement ("data"); writer.WriteAttributeString ("name", name); + if (typename != null) + writer.WriteAttributeString ("type", typename); writer.WriteStartElement ("value"); writer.WriteString (value); writer.WriteEndElement (); @@ -206,10 +213,15 @@ namespace System.Resources if (writer == null) InitWriter (); + if (value is string) { + WriteString (name, (string) value); + return; + } + TypeConverter converter = TypeDescriptor.GetConverter (value); if (converter != null && converter.CanConvertTo (typeof (string)) && converter.CanConvertFrom (typeof (string))) { - string str = (string) converter.ConvertTo (value, typeof (string)); - WriteString (name, str); + string str = (string) converter.ConvertToInvariantString (value); + WriteString (name, str, value.GetType ().AssemblyQualifiedName); return; } -- 2.25.1