aboutsummaryrefslogtreecommitdiff
path: root/src/ProtocolBuffers/Serialization/DictionaryReader.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ProtocolBuffers/Serialization/DictionaryReader.cs')
-rw-r--r--src/ProtocolBuffers/Serialization/DictionaryReader.cs15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/ProtocolBuffers/Serialization/DictionaryReader.cs b/src/ProtocolBuffers/Serialization/DictionaryReader.cs
index f8ef1eda..d6e5c189 100644
--- a/src/ProtocolBuffers/Serialization/DictionaryReader.cs
+++ b/src/ProtocolBuffers/Serialization/DictionaryReader.cs
@@ -64,7 +64,7 @@ namespace Google.ProtocolBuffers.Serialization
try
{
if (obj is IConvertible)
- value = (T)Convert.ChangeType(obj, typeof(T));
+ value = (T)Convert.ChangeType(obj, typeof(T), System.Globalization.CultureInfo.InvariantCulture);
else
value = (T)obj;
}
@@ -186,8 +186,17 @@ namespace Google.ProtocolBuffers.Serialization
object[] array = null;
if (GetValue(ref array))
{
- foreach (T item in array)
- items.Add(item);
+ if (typeof(T) == typeof(ByteString))
+ {
+ ICollection<ByteString> output = (ICollection<ByteString>)items;
+ foreach (byte[] item in array)
+ output.Add(ByteString.CopyFrom(item));
+ }
+ else
+ {
+ foreach (T item in array)
+ items.Add(item);
+ }
return true;
}
return false;