aboutsummaryrefslogtreecommitdiff
path: root/src/ProtocolBuffers/Serialization/DictionaryReader.cs
diff options
context:
space:
mode:
authorcsharptest <roger@csharptest.net>2011-06-10 23:54:53 -0500
committerrogerk <devnull@localhost>2011-06-10 23:54:53 -0500
commit7fc785c1d463c4424cf3e3c8d7fbe796e0197b70 (patch)
tree1ea510abf9dbf61d709e26ba1845b944bb87b8ef /src/ProtocolBuffers/Serialization/DictionaryReader.cs
parentea5fd37d1dbf8229e358d47095f93d362e73cc5d (diff)
downloadprotobuf-7fc785c1d463c4424cf3e3c8d7fbe796e0197b70.tar.gz
protobuf-7fc785c1d463c4424cf3e3c8d7fbe796e0197b70.tar.bz2
protobuf-7fc785c1d463c4424cf3e3c8d7fbe796e0197b70.zip
Reader/Writer implementations changed to use static factories
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;