diff options
Diffstat (limited to 'src/ProtocolBuffers/Serialization/DictionaryReader.cs')
-rw-r--r-- | src/ProtocolBuffers/Serialization/DictionaryReader.cs | 15 |
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;
|