Refactoring the ICoded interfaces (again) removing the use of some generic methods.
diff --git a/src/ProtocolBuffers/ICodedInputStream.cs b/src/ProtocolBuffers/ICodedInputStream.cs
index f4c6622..5a9df87 100644
--- a/src/ProtocolBuffers/ICodedInputStream.cs
+++ b/src/ProtocolBuffers/ICodedInputStream.cs
@@ -147,13 +147,6 @@
         void ReadPrimitiveArray(FieldType fieldType, uint fieldTag, string fieldName, ICollection<object> list);

 

         /// <summary>

-        /// Reads an array of primitive values into the list, if the wire-type of fieldTag is length-prefixed and the 

-        /// type is numberic, it will read a packed array.

-        /// </summary>

-        [CLSCompliant(false)]

-        void ReadPrimitiveArray<T>(FieldType fieldType, uint fieldTag, string fieldName, ICollection<T> list);

-

-        /// <summary>

         /// Reads an array of primitive values into the list, if the wire-type of fieldTag is length-prefixed, it will

         /// read a packed array.

         /// </summary>

@@ -201,5 +194,50 @@
         /// nothing is skipped. Otherwise, returns true.</returns>

         [CLSCompliant(false)]

         bool SkipField();

+

+        [CLSCompliant(false)]

+        void ReadStringArray(uint fieldTag, string fieldName, ICollection<string> list);

+

+        [CLSCompliant(false)]

+        void ReadBytesArray(uint fieldTag, string fieldName, ICollection<ByteString> list);

+

+        [CLSCompliant(false)]

+        void ReadBoolArray(uint fieldTag, string fieldName, ICollection<bool> list);

+

+        [CLSCompliant(false)]

+        void ReadInt32Array(uint fieldTag, string fieldName, ICollection<int> list);

+

+        [CLSCompliant(false)]

+        void ReadSInt32Array(uint fieldTag, string fieldName, ICollection<int> list);

+

+        [CLSCompliant(false)]

+        void ReadUInt32Array(uint fieldTag, string fieldName, ICollection<uint> list);

+

+        [CLSCompliant(false)]

+        void ReadFixed32Array(uint fieldTag, string fieldName, ICollection<uint> list);

+

+        [CLSCompliant(false)]

+        void ReadSFixed32Array(uint fieldTag, string fieldName, ICollection<int> list);

+

+        [CLSCompliant(false)]

+        void ReadInt64Array(uint fieldTag, string fieldName, ICollection<long> list);

+

+        [CLSCompliant(false)]

+        void ReadSInt64Array(uint fieldTag, string fieldName, ICollection<long> list);

+

+        [CLSCompliant(false)]

+        void ReadUInt64Array(uint fieldTag, string fieldName, ICollection<ulong> list);

+

+        [CLSCompliant(false)]

+        void ReadFixed64Array(uint fieldTag, string fieldName, ICollection<ulong> list);

+

+        [CLSCompliant(false)]

+        void ReadSFixed64Array(uint fieldTag, string fieldName, ICollection<long> list);

+

+        [CLSCompliant(false)]

+        void ReadDoubleArray(uint fieldTag, string fieldName, ICollection<double> list);

+

+        [CLSCompliant(false)]

+        void ReadFloatArray(uint fieldTag, string fieldName, ICollection<float> list);

     }

 }
\ No newline at end of file