Reader/Writer implementations changed to use static factories
diff --git a/src/ProtocolBuffers/Serialization/DictionaryReader.cs b/src/ProtocolBuffers/Serialization/DictionaryReader.cs
index f8ef1ed..d6e5c18 100644
--- a/src/ProtocolBuffers/Serialization/DictionaryReader.cs
+++ b/src/ProtocolBuffers/Serialization/DictionaryReader.cs
@@ -64,7 +64,7 @@
                 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 @@
             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;