Support Compact Framework 3.5
diff --git a/src/ProtocolBuffers/MessageStreamIterator.cs b/src/ProtocolBuffers/MessageStreamIterator.cs
index 68519e0..0466262 100644
--- a/src/ProtocolBuffers/MessageStreamIterator.cs
+++ b/src/ProtocolBuffers/MessageStreamIterator.cs
@@ -54,6 +54,9 @@
     private readonly ExtensionRegistry extensionRegistry;
     private readonly int sizeLimit;
 
+    // Type.EmptyTypes isn't present on the compact framework
+    private static readonly Type[] EmptyTypes = new Type[0];
+
     /// <summary>
     /// Delegate created via reflection trickery (once per type) to create a builder
     /// and read a message from a CodedInputStream with it. Note that unlike in Java,
@@ -77,7 +80,7 @@
         Type builderType = FindBuilderType();
 
         // Yes, it's redundant to find this again, but it's only the once...
-        MethodInfo createBuilderMethod = typeof(TMessage).GetMethod("CreateBuilder", Type.EmptyTypes);
+        MethodInfo createBuilderMethod = typeof(TMessage).GetMethod("CreateBuilder", EmptyTypes);
         Delegate builderBuilder = Delegate.CreateDelegate(
             typeof(Func<>).MakeGenericType(builderType), null, createBuilderMethod);
 
@@ -102,7 +105,7 @@
     /// Works out the builder type for TMessage, or throws an ArgumentException to explain why it can't.
     /// </summary>
     private static Type FindBuilderType() {
-      MethodInfo createBuilderMethod = typeof(TMessage).GetMethod("CreateBuilder", Type.EmptyTypes);
+      MethodInfo createBuilderMethod = typeof(TMessage).GetMethod("CreateBuilder", EmptyTypes);
       if (createBuilderMethod == null) {
         throw new ArgumentException("Message type " + typeof(TMessage).FullName + " has no CreateBuilder method.");
       }