Browse Source

first pass at adding required changes

csharptest 14 năm trước cách đây
mục cha
commit
c2d2c1adaf
49 tập tin đã thay đổi với 1117 bổ sung541 xóa
  1. 10 10
      src/AddressBook/AddressBookProtos.cs
  2. 3 3
      src/AddressBook/Properties/AssemblyInfo.cs
  3. 3 3
      src/ProtoBench/Properties/AssemblyInfo.cs
  4. 3 3
      src/ProtoDump/Properties/AssemblyInfo.cs
  5. 3 3
      src/ProtoGen.Test/Properties/AssemblyInfo.cs
  6. 3 3
      src/ProtoGen/Properties/AssemblyInfo.cs
  7. 3 3
      src/ProtoMunge/Properties/AssemblyInfo.cs
  8. 10 0
      src/ProtocolBuffers.Serialization/AbstractReader.cs
  9. 20 0
      src/ProtocolBuffers.Serialization/AbstractWriter.cs
  10. 15 0
      src/ProtocolBuffers.Serialization/DictionaryReader.cs
  11. 13 0
      src/ProtocolBuffers.Serialization/DictionaryWriter.cs
  12. 168 0
      src/ProtocolBuffers.Serialization/Http/MessageFormatFactory.cs
  13. 82 0
      src/ProtocolBuffers.Serialization/Http/MessageFormatOptions.cs
  14. 32 0
      src/ProtocolBuffers.Serialization/Http/ServiceExtensions.cs
  15. 21 4
      src/ProtocolBuffers.Serialization/JsonFormatReader.cs
  16. 19 1
      src/ProtocolBuffers.Serialization/JsonFormatWriter.cs
  17. 3 3
      src/ProtocolBuffers.Serialization/Properties/AssemblyInfo.cs
  18. 3 0
      src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj
  19. 35 0
      src/ProtocolBuffers.Serialization/XmlFormatReader.cs
  20. 33 6
      src/ProtocolBuffers.Serialization/XmlFormatWriter.cs
  21. 4 4
      src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs
  22. 4 4
      src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
  23. 43 43
      src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
  24. 4 4
      src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
  25. 2 2
      src/ProtocolBuffers.Test/TestProtos/UnitTestEmptyProtoFile.cs
  26. 10 10
      src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs
  27. 6 6
      src/ProtocolBuffers.Test/TestProtos/UnitTestGenericServices.cs
  28. 13 13
      src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs
  29. 13 13
      src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs
  30. 5 5
      src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs
  31. 5 5
      src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
  32. 15 15
      src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
  33. 5 5
      src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs
  34. 8 8
      src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
  35. 93 93
      src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
  36. 15 15
      src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs
  37. 16 16
      src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs
  38. 64 0
      src/ProtocolBuffers.Test/TestWriterFormatJson.cs
  39. 72 0
      src/ProtocolBuffers.Test/TestWriterFormatXml.cs
  40. 11 11
      src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
  41. 47 47
      src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
  42. 3 3
      src/ProtocolBuffers/Properties/AssemblyInfo.cs
  43. 22 22
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs
  44. 15 15
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs
  45. 5 5
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs
  46. 5 5
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs
  47. 4 4
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs
  48. 33 33
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs
  49. 93 93
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs

+ 10 - 10
src/AddressBook/AddressBookProtos.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class AddressBookProtos {
   
     #region Extension registration
@@ -66,7 +66,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class Person : pb::GeneratedMessage<Person, Person.Builder> {
     private static readonly Person defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _personFieldNames = new string[] { "email", "id", "name", "phone" };
@@ -94,10 +94,10 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum PhoneType {
         MOBILE = 0,
         HOME = 1,
@@ -106,7 +106,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class PhoneNumber : pb::GeneratedMessage<PhoneNumber, PhoneNumber.Builder> {
         private static readonly PhoneNumber defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _phoneNumberFieldNames = new string[] { "number", "type" };
@@ -228,7 +228,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<PhoneNumber, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -532,7 +532,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<Person, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -764,7 +764,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class AddressBook : pb::GeneratedMessage<AddressBook, AddressBook.Builder> {
     private static readonly AddressBook defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _addressBookFieldNames = new string[] { "person" };
@@ -874,7 +874,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<AddressBook, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 3 - 3
src/AddressBook/Properties/AssemblyInfo.cs

@@ -33,7 +33,7 @@ using System.Runtime.InteropServices;
 //
 // You can specify all the values or you can default the Build and Revision Numbers 
 // by using the '*' as shown below:
-// [assembly: AssemblyVersion("2.3.0.277")]
+// [assembly: AssemblyVersion("2.3.0.369")]
 
-[assembly: AssemblyVersion("2.3.0.277")]
-[assembly: AssemblyFileVersion("2.3.0.277")]
+[assembly: AssemblyVersion("2.3.0.369")]
+[assembly: AssemblyFileVersion("2.3.0.369")]

+ 3 - 3
src/ProtoBench/Properties/AssemblyInfo.cs

@@ -36,7 +36,7 @@ using System.Runtime.InteropServices;
 //
 // You can specify all the values or you can default the Build and Revision Numbers 
 // by using the '*' as shown below:
-// [assembly: AssemblyVersion("2.3.0.277")]
+// [assembly: AssemblyVersion("2.3.0.369")]
 
-[assembly: AssemblyVersion("2.3.0.277")]
-[assembly: AssemblyFileVersion("2.3.0.277")]
+[assembly: AssemblyVersion("2.3.0.369")]
+[assembly: AssemblyFileVersion("2.3.0.369")]

+ 3 - 3
src/ProtoDump/Properties/AssemblyInfo.cs

@@ -34,7 +34,7 @@ using System.Runtime.InteropServices;
 //
 // You can specify all the values or you can default the Build and Revision Numbers 
 // by using the '*' as shown below:
-// [assembly: AssemblyVersion("2.3.0.277")]
+// [assembly: AssemblyVersion("2.3.0.369")]
 
-[assembly: AssemblyVersion("2.3.0.277")]
-[assembly: AssemblyFileVersion("2.3.0.277")]
+[assembly: AssemblyVersion("2.3.0.369")]
+[assembly: AssemblyFileVersion("2.3.0.369")]

+ 3 - 3
src/ProtoGen.Test/Properties/AssemblyInfo.cs

@@ -34,7 +34,7 @@ using System.Runtime.InteropServices;
 //
 // You can specify all the values or you can default the Build and Revision Numbers 
 // by using the '*' as shown below:
-// [assembly: AssemblyVersion("2.3.0.277")]
+// [assembly: AssemblyVersion("2.3.0.369")]
 
-[assembly: AssemblyVersion("2.3.0.277")]
-[assembly: AssemblyFileVersion("2.3.0.277")]
+[assembly: AssemblyVersion("2.3.0.369")]
+[assembly: AssemblyFileVersion("2.3.0.369")]

+ 3 - 3
src/ProtoGen/Properties/AssemblyInfo.cs

@@ -33,7 +33,7 @@ using System.Runtime.InteropServices;
 //
 // You can specify all the values or you can default the Build and Revision Numbers 
 // by using the '*' as shown below:
-// [assembly: AssemblyVersion("2.3.0.277")]
+// [assembly: AssemblyVersion("2.3.0.369")]
 
-[assembly: AssemblyVersion("2.3.0.277")]
-[assembly: AssemblyFileVersion("2.3.0.277")]
+[assembly: AssemblyVersion("2.3.0.369")]
+[assembly: AssemblyFileVersion("2.3.0.369")]

+ 3 - 3
src/ProtoMunge/Properties/AssemblyInfo.cs

@@ -34,7 +34,7 @@ using System.Runtime.InteropServices;
 //
 // You can specify all the values or you can default the Build and Revision Numbers 
 // by using the '*' as shown below:
-// [assembly: AssemblyVersion("2.3.0.277")]
+// [assembly: AssemblyVersion("2.3.0.369")]
 
-[assembly: AssemblyVersion("2.3.0.277")]
-[assembly: AssemblyFileVersion("2.3.0.277")]
+[assembly: AssemblyVersion("2.3.0.369")]
+[assembly: AssemblyFileVersion("2.3.0.369")]

+ 10 - 0
src/ProtocolBuffers.Serialization/AbstractReader.cs

@@ -112,6 +112,16 @@ namespace Google.ProtocolBuffers.Serialization
         /// Merges the input stream into the provided IBuilderLite 
         /// </summary>
         protected abstract bool ReadMessage(IBuilderLite builder, ExtensionRegistry registry);
+        
+        /// <summary>
+        /// Reads the root-message preamble specific to this formatter
+        /// </summary>
+        public abstract AbstractReader ReadStartMessage();
+
+        /// <summary>
+        /// Reads the root-message close specific to this formatter
+        /// </summary>
+        public abstract void ReadEndMessage();
 
         /// <summary>
         /// Merges the input stream into the provided IBuilderLite 

+ 20 - 0
src/ProtocolBuffers.Serialization/AbstractWriter.cs

@@ -43,6 +43,26 @@ namespace Google.ProtocolBuffers.Serialization
         /// </summary>
         public abstract void WriteMessage(IMessageLite message);
 
+        /// <summary>
+        /// Used to write any nessary root-message preamble. After this call you can call 
+        /// IMessageLite.MergeTo(...) and complete the message with a call to EndMessage().
+        /// These three calls are identical to just calling WriteMessage(message);
+        /// </summary>
+        /// <example>
+        /// AbstractWriter writer;
+        /// writer.StartMessage();
+        /// message.WriteTo(writer);
+        /// writer.EndMessage();
+        /// // ... or, but not both ...
+        /// writer.WriteMessage(message);
+        /// </example>
+        public abstract void StartMessage();
+
+        /// <summary>
+        /// Used to complete a root-message previously started with a call to StartMessage()
+        /// </summary>
+        public abstract void EndMessage();
+
         /// <summary>
         /// Writes a Boolean value
         /// </summary>

+ 15 - 0
src/ProtocolBuffers.Serialization/DictionaryReader.cs

@@ -22,6 +22,21 @@ namespace Google.ProtocolBuffers.Serialization
             _ready = _input.MoveNext();
         }
 
+        /// <summary>
+        /// No-op
+        /// </summary>
+        public override AbstractReader ReadStartMessage()
+        {
+            return this;
+        }
+
+        /// <summary>
+        /// No-op
+        /// </summary>
+        public override void ReadEndMessage()
+        {
+        }
+
         /// <summary>
         /// Merges the contents of stream into the provided message builder
         /// </summary>

+ 13 - 0
src/ProtocolBuffers.Serialization/DictionaryWriter.cs

@@ -53,6 +53,19 @@ namespace Google.ProtocolBuffers.Serialization
             message.WriteTo(this);
         }
 
+
+        /// <summary>
+        /// No-op
+        /// </summary>
+        public override void StartMessage()
+        { }
+
+        /// <summary>
+        /// No-op
+        /// </summary>
+        public override void EndMessage()
+        { }
+
         /// <summary>
         /// Writes a Boolean value
         /// </summary>

+ 168 - 0
src/ProtocolBuffers.Serialization/Http/MessageFormatFactory.cs

@@ -0,0 +1,168 @@
+using System;
+using System.IO;
+using System.Xml;
+using System.Text;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+    /// <summary>
+    /// Extensions and helpers to abstract the reading/writing of messages by a client-specified content type.
+    /// </summary>
+    public static class MessageFormatFactory
+    {
+        /// <summary>
+        /// Constructs an ICodedInputStream from the input stream based on the contentType provided
+        /// </summary>
+        /// <param name="options">Options specific to reading this message and/or content type</param>
+        /// <param name="contentType">The mime type of the input stream content</param>
+        /// <param name="input">The stream to read the message from</param>
+        /// <returns>The ICodedInputStream that can be given to the IBuilder.MergeFrom(...) method</returns>
+        public static ICodedInputStream CreateInputStream(MessageFormatOptions options, string contentType, Stream input)
+        {
+            FormatType inputType = ContentTypeToFormat(contentType, options.DefaultContentType);
+
+            ICodedInputStream codedInput;
+            if (inputType == FormatType.ProtoBuffer)
+            {
+                codedInput = CodedInputStream.CreateInstance(input);
+            }
+            else if (inputType == FormatType.Json)
+            {
+                JsonFormatReader reader = JsonFormatReader.CreateInstance(input);
+                codedInput = reader.ReadStartMessage();
+            }
+            else if (inputType == FormatType.Xml)
+            {
+                XmlFormatReader reader = XmlFormatReader.CreateInstance(input);
+                reader.RootElementName = options.XmlReaderRootElementName;
+                reader.Options = options.XmlReaderOptions;
+                codedInput = reader.ReadStartMessage();
+            }
+            else
+                throw new NotSupportedException();
+
+            return codedInput;
+        }
+
+        /// <summary>
+        /// Merges the message from the input stream based on the contentType provided
+        /// </summary>
+        /// <typeparam name="TBuilder">A type derived from IBuilderLite</typeparam>
+        /// <param name="builder">An instance of a message builder</param>
+        /// <param name="options">Options specific to reading this message and/or content type</param>
+        /// <param name="contentType">The mime type of the input stream content</param>
+        /// <param name="input">The stream to read the message from</param>
+        /// <returns>The same builder instance that was supplied in the builder parameter</returns>
+        public static TBuilder MergeFrom<TBuilder>(this TBuilder builder, MessageFormatOptions options, string contentType, Stream input) where TBuilder : IBuilderLite
+        {
+            ICodedInputStream codedInput = CreateInputStream(options, contentType, input);
+            return (TBuilder)builder.WeakMergeFrom(codedInput, options.ExtensionRegistry);
+        }
+
+        /// <summary>
+        /// Writes the message instance to the stream using the content type provided
+        /// </summary>
+        /// <param name="message">An instance of a message</param>
+        /// <param name="options">Options specific to writing this message and/or content type</param>
+        /// <param name="contentType">The mime type of the content to be written</param>
+        /// <param name="output">The stream to write the message to</param>
+        public static void WriteTo(this IMessageLite message, MessageFormatOptions options, string contentType, Stream output)
+        {
+            FormatType outputType = ContentTypeToFormat(contentType, options.DefaultContentType);
+
+            ICodedOutputStream codedOutput;
+            if (outputType == FormatType.ProtoBuffer)
+            {
+                codedOutput = CodedOutputStream.CreateInstance(output);
+            }
+            else if (outputType == FormatType.Json)
+            {
+                JsonFormatWriter writer = JsonFormatWriter.CreateInstance(output);
+                if (options.FormattedOutput)
+                {
+                    writer.Formatted();
+                }
+                writer.StartMessage();
+                codedOutput = writer;
+            }
+            else if (outputType == FormatType.Xml)
+            {
+                XmlFormatWriter writer;
+                if (options.FormattedOutput)
+                {
+                    writer = XmlFormatWriter.CreateInstance(output);
+                }
+                else
+                {
+                    XmlWriterSettings settings = new XmlWriterSettings()
+                       {
+                           CheckCharacters = false,
+                           NewLineHandling = NewLineHandling.Entitize,
+                           OmitXmlDeclaration = true,
+                           Encoding = Encoding.UTF8,
+                           Indent = true,
+                           IndentChars = "  ",
+                           NewLineChars = Environment.NewLine,
+                       };
+                    writer = XmlFormatWriter.CreateInstance(XmlWriter.Create(output, settings));
+                }
+                writer.RootElementName = options.XmlWriterRootElementName;
+                writer.Options = options.XmlWriterOptions;
+                writer.StartMessage();
+                codedOutput = writer;
+            }
+            else
+                throw new NotSupportedException();
+
+            message.WriteTo(codedOutput);
+
+            if (codedOutput is AbstractWriter)
+                ((AbstractWriter) codedOutput).EndMessage();
+
+            codedOutput.Flush();
+        }
+
+
+        enum FormatType { ProtoBuffer, Json, Xml };
+
+        private static FormatType ContentTypeToFormat(string contentType, string defaultType)
+        {
+            switch ((contentType ?? String.Empty).Split(';')[0].Trim().ToLower())
+            {
+                case "application/json":
+                case "application/x-json":
+                case "application/x-javascript":
+                case "text/javascript":
+                case "text/x-javascript":
+                case "text/x-json":
+                case "text/json":
+                    {
+                        return FormatType.Json;
+                    }
+
+                case "text/xml":
+                case "application/xml":
+                    {
+                        return FormatType.Xml;
+                    }
+
+                case "application/binary":
+                case "application/x-protobuf":
+                case "application/vnd.google.protobuf":
+                    {
+                        return FormatType.ProtoBuffer;
+                    }
+
+                case "":
+                case null:
+                    if (!String.IsNullOrEmpty(defaultType))
+                    {
+                        return ContentTypeToFormat(defaultType, null);
+                    }
+                    break;
+            }
+
+            throw new ArgumentOutOfRangeException("contentType");
+        }
+    }
+}

+ 82 - 0
src/ProtocolBuffers.Serialization/Http/MessageFormatOptions.cs

@@ -0,0 +1,82 @@
+using System;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+    /// <summary>
+    /// Defines control information for the various formatting used with HTTP services
+    /// </summary>
+    public struct MessageFormatOptions
+    {
+        /// <summary>The mime type for xml content</summary>
+        /// <remarks>Other valid xml mime types include: application/binary, application/x-protobuf</remarks>
+        public const string ContentTypeProtoBuffer = "application/vnd.google.protobuf";
+
+        /// <summary>The mime type for xml content</summary>
+        /// <remarks>Other valid xml mime types include: text/xml</remarks>
+        public const string ContentTypeXml = "application/xml";
+        
+        /// <summary>The mime type for json content</summary>
+        /// <remarks>
+        /// Other valid json mime types include: application/json, application/x-json, 
+        /// application/x-javascript, text/javascript, text/x-javascript, text/x-json, text/json
+        /// </remarks>
+        public const string ContentTypeJson = "application/json";
+
+        private string _defaultContentType;
+        private string _xmlReaderRootElementName;
+        private string _xmlWriterRootElementName;
+        private ExtensionRegistry _extensionRegistry;
+
+        /// <summary>
+        /// The default content type to use if the input type is null or empty.  If this
+        /// value is not supplied an ArgumentOutOfRangeException exception will be raised.
+        /// </summary>
+        public string DefaultContentType
+        {
+            get { return _defaultContentType ?? String.Empty; }
+            set { _defaultContentType = value; }
+        }
+
+        /// <summary>
+        /// The extension registry to use when reading messages
+        /// </summary>
+        public ExtensionRegistry ExtensionRegistry
+        {
+            get { return _extensionRegistry ?? ExtensionRegistry.Empty; }
+            set { _extensionRegistry = value; }
+        }
+
+        /// <summary>
+        /// The name of the xml root element when reading messages
+        /// </summary>
+        public string XmlReaderRootElementName
+        {
+            get { return _xmlReaderRootElementName ?? XmlFormatReader.DefaultRootElementName; }
+            set { _xmlReaderRootElementName = value; }
+        }
+
+        /// <summary>
+        /// Xml reader options
+        /// </summary>
+        public XmlReaderOptions XmlReaderOptions { get; set; }
+
+        /// <summary>
+        /// True to use formatted output including new-lines and default indentation
+        /// </summary>
+        public bool FormattedOutput { get; set; }
+
+        /// <summary>
+        /// The name of the xml root element when writing messages
+        /// </summary>
+        public string XmlWriterRootElementName
+        {
+            get { return _xmlWriterRootElementName ?? XmlFormatWriter.DefaultRootElementName; }
+            set { _xmlWriterRootElementName = value; }
+        }
+
+        /// <summary>
+        /// Xml writer options
+        /// </summary>
+        public XmlWriterOptions XmlWriterOptions { get; set; }
+    }
+}

+ 32 - 0
src/ProtocolBuffers.Serialization/Http/ServiceExtensions.cs

@@ -0,0 +1,32 @@
+using System.Collections.Generic;
+using System.Text;
+using Google.ProtocolBuffers;
+using System.IO;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+    /// <summary>
+    /// Extensions for the IRpcServerStub
+    /// </summary>
+    public static class ServiceExtensions
+    {
+        /// <summary>
+        /// Used to implement a service endpoint on an HTTP server.  This works with services generated with the
+        /// service_generator_type option set to IRPCDISPATCH.
+        /// </summary>
+        /// <param name="stub">The service execution stub</param>
+        /// <param name="methodName">The name of the method being invoked</param>
+        /// <param name="options">optional arguments for the format reader/writer</param>
+        /// <param name="contentType">The mime type for the input stream</param>
+        /// <param name="input">The input stream</param>
+        /// <param name="responseType">The mime type for the output stream</param>
+        /// <param name="output">The output stream</param>
+        public static void HttpCallMethod(this IRpcServerStub stub, string methodName, MessageFormatOptions options, 
+            string contentType, Stream input, string responseType, Stream output)
+        {
+            ICodedInputStream codedInput = MessageFormatFactory.CreateInputStream(options, contentType, input);
+            IMessageLite response = stub.CallMethod(methodName, codedInput, options.ExtensionRegistry);
+            response.WriteTo(options, responseType, output);
+        }
+    }
+}

+ 21 - 4
src/ProtocolBuffers.Serialization/JsonFormatReader.cs

@@ -101,17 +101,34 @@ namespace Google.ProtocolBuffers.Serialization
         }
 
         /// <summary>
-        /// Merges the contents of stream into the provided message builder
+        /// Reads the root-message preamble specific to this formatter
         /// </summary>
-        public override TBuilder Merge<TBuilder>(TBuilder builder, ExtensionRegistry registry)
+        public override AbstractReader ReadStartMessage()
         {
             _input.Consume('{');
             _stopChar.Push('}');
 
             _state = ReaderState.BeginObject;
-            builder.WeakMergeFrom(this, registry);
-            _input.Consume((char) _stopChar.Pop());
+            return this;
+        }
+
+        /// <summary>
+        /// Reads the root-message close specific to this formatter
+        /// </summary>
+        public override void ReadEndMessage()
+        {
+            _input.Consume((char)_stopChar.Pop());
             _state = ReaderState.EndValue;
+        }
+
+        /// <summary>
+        /// Merges the contents of stream into the provided message builder
+        /// </summary>
+        public override TBuilder Merge<TBuilder>(TBuilder builder, ExtensionRegistry registry)
+        {
+            AbstractReader rdr = ReadStartMessage();
+            builder.WeakMergeFrom(rdr, registry);
+            rdr.ReadEndMessage();
             return builder;
         }
 

+ 19 - 1
src/ProtocolBuffers.Serialization/JsonFormatWriter.cs

@@ -444,6 +444,18 @@ namespace Google.ProtocolBuffers.Serialization
         /// Writes the message to the the formatted stream.
         /// </summary>
         public override void WriteMessage(IMessageLite message)
+        {
+            StartMessage();
+            message.WriteTo(this);
+            EndMessage();
+        }
+
+        /// <summary>
+        /// Used to write the root-message preamble, in json this is the left-curly brace '{'.
+        /// After this call you can call IMessageLite.MergeTo(...) and complete the message with
+        /// a call to EndMessage().
+        /// </summary>
+        public override void StartMessage()
         {
             if (_isArray)
             {
@@ -451,7 +463,13 @@ namespace Google.ProtocolBuffers.Serialization
             }
             WriteToOutput("{");
             _counter.Add(0);
-            message.WriteTo(this);
+        }
+
+        /// <summary>
+        /// Used to complete a root-message previously started with a call to StartMessage()
+        /// </summary>
+        public override void EndMessage()
+        {
             _counter.RemoveAt(_counter.Count - 1);
             WriteLine("}");
             Flush();

+ 3 - 3
src/ProtocolBuffers.Serialization/Properties/AssemblyInfo.cs

@@ -65,12 +65,12 @@ using System.Runtime.CompilerServices;
 //
 // You can specify all the values or you can default the Build and Revision Numbers 
 // by using the '*' as shown below:
-// [assembly: AssemblyVersion("2.3.0.277")]
+// [assembly: AssemblyVersion("2.3.0.369")]
 
-[assembly: AssemblyVersion("2.3.0.277")]
+[assembly: AssemblyVersion("2.3.0.369")]
 #if !COMPACT_FRAMEWORK_35
 
-[assembly: AssemblyFileVersion("2.3.0.277")]
+[assembly: AssemblyFileVersion("2.3.0.369")]
 #endif
 
 [assembly: CLSCompliant(true)]

+ 3 - 0
src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj

@@ -98,6 +98,9 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="Extensions.cs" />
+    <Compile Include="Http\MessageFormatFactory.cs" />
+    <Compile Include="Http\MessageFormatOptions.cs" />
+    <Compile Include="Http\ServiceExtensions.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="AbstractReader.cs" />
     <Compile Include="AbstractTextReader.cs" />

+ 35 - 0
src/ProtocolBuffers.Serialization/XmlFormatReader.cs

@@ -135,6 +135,41 @@ namespace Google.ProtocolBuffers.Serialization
             }
         }
 
+        /// <summary>
+        /// Reads the root-message preamble specific to this formatter
+        /// </summary>
+        public override AbstractReader ReadStartMessage()
+        {
+            return ReadStartMessage(_rootElementName);
+        }
+
+        public AbstractReader ReadStartMessage(string element)
+        {
+            string field;
+            Assert(PeekNext(out field) && field == element);
+
+            XmlReader child = _input.ReadSubtree();
+            while (!child.IsStartElement() && child.Read())
+            {
+                continue;
+            }
+            child.Read();
+            return CloneWith(child);
+        }
+
+        /// <summary>
+        /// Reads the root-message close specific to this formatter, MUST be called
+        /// on the reader obtained from ReadStartMessage(string element).
+        /// </summary>
+        public override void ReadEndMessage()
+        {
+            Assert(0 == _input.Depth);
+            if(_input.NodeType == XmlNodeType.EndElement)
+            {
+                _input.Read();
+            }
+        }
+
         /// <summary>
         /// Merge the provided builder as an element named <see cref="RootElementName"/> in the current context
         /// </summary>

+ 33 - 6
src/ProtocolBuffers.Serialization/XmlFormatWriter.cs

@@ -112,17 +112,21 @@ namespace Google.ProtocolBuffers.Serialization
         }
 
         /// <summary>
-        /// Writes a message as an element using the name defined in <see cref="RootElementName"/>
+        /// Used to write the root-message preamble, in xml this is open element for RootElementName,
+        /// by default "&lt;root&gt;". After this call you can call IMessageLite.MergeTo(...) and 
+        /// complete the message with a call to EndMessage().
         /// </summary>
-        public override void WriteMessage(IMessageLite message)
+        public override void StartMessage()
         {
-            WriteMessage(_rootElementName, message);
+            StartMessage(_rootElementName);
         }
 
         /// <summary>
-        /// Writes a message as an element with the given name
+        /// Used to write the root-message preamble, in xml this is open element for elementName. 
+        /// After this call you can call IMessageLite.MergeTo(...) and  complete the message with 
+        /// a call to EndMessage().
         /// </summary>
-        public void WriteMessage(string elementName, IMessageLite message)
+        public void StartMessage(string elementName)
         {
             if (TestOption(XmlWriterOptions.OutputJsonTypes))
             {
@@ -133,12 +137,35 @@ namespace Google.ProtocolBuffers.Serialization
             {
                 _output.WriteStartElement(elementName);
             }
+        }
 
-            message.WriteTo(this);
+        /// <summary>
+        /// Used to complete a root-message previously started with a call to StartMessage()
+        /// </summary>
+        public override void EndMessage()
+        {
             _output.WriteEndElement();
             _output.Flush();
         }
 
+        /// <summary>
+        /// Writes a message as an element using the name defined in <see cref="RootElementName"/>
+        /// </summary>
+        public override void WriteMessage(IMessageLite message)
+        {
+            WriteMessage(_rootElementName, message);
+        }
+
+        /// <summary>
+        /// Writes a message as an element with the given name
+        /// </summary>
+        public void WriteMessage(string elementName, IMessageLite message)
+        {
+            StartMessage(elementName);
+            message.WriteTo(this);
+            EndMessage();
+        }
+
         /// <summary>
         /// Writes a message
         /// </summary>

+ 4 - 4
src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs

@@ -12,7 +12,7 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("")]
 [assembly: AssemblyProduct("ProtocolBuffers.Test")]
-[assembly: AssemblyCopyright("Copyright ©  2008")]
+[assembly: AssemblyCopyright("Copyright �  2008")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
@@ -35,10 +35,10 @@ using System.Runtime.InteropServices;
 //
 // You can specify all the values or you can default the Build and Revision Numbers 
 // by using the '*' as shown below:
-// [assembly: AssemblyVersion("2.3.0.277")]
+// [assembly: AssemblyVersion("2.3.0.369")]
 
-[assembly: AssemblyVersion("2.3.0.277")]
-[assembly: AssemblyFileVersion("2.3.0.277")]
+[assembly: AssemblyVersion("2.3.0.369")]
+[assembly: AssemblyFileVersion("2.3.0.369")]
 // We don't really need CLSCompliance, but if the assembly builds with no warnings,
 // that means the generator is okay.
 

+ 4 - 4
src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestCSharpOptionsProtoFile {
   
     #region Extension registration
@@ -58,7 +58,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class OptionsMessage : pb::GeneratedMessage<OptionsMessage, OptionsMessage.Builder> {
     private static readonly OptionsMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _optionsMessageFieldNames = new string[] { "customized", "normal", "options_message" };
@@ -195,7 +195,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<OptionsMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 43 - 43
src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestCustomOptionsProtoFile {
   
     #region Extension registration
@@ -387,7 +387,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   #region Enums
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum MethodOpt1 {
     METHODOPT1_VAL1 = 1,
     METHODOPT1_VAL2 = 2,
@@ -398,7 +398,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMessageWithCustomOptions : pb::GeneratedMessage<TestMessageWithCustomOptions, TestMessageWithCustomOptions.Builder> {
     private static readonly TestMessageWithCustomOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testMessageWithCustomOptionsFieldNames = new string[] { "field1" };
@@ -426,10 +426,10 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum AnEnum {
         ANENUM_VAL1 = 1,
         ANENUM_VAL2 = 2,
@@ -518,7 +518,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestMessageWithCustomOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -653,7 +653,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class CustomOptionFooRequest : pb::GeneratedMessage<CustomOptionFooRequest, CustomOptionFooRequest.Builder> {
     private static readonly CustomOptionFooRequest defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _customOptionFooRequestFieldNames = new string[] {  };
@@ -742,7 +742,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<CustomOptionFooRequest, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -851,7 +851,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class CustomOptionFooResponse : pb::GeneratedMessage<CustomOptionFooResponse, CustomOptionFooResponse.Builder> {
     private static readonly CustomOptionFooResponse defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _customOptionFooResponseFieldNames = new string[] {  };
@@ -940,7 +940,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<CustomOptionFooResponse, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1049,7 +1049,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class DummyMessageContainingEnum : pb::GeneratedMessage<DummyMessageContainingEnum, DummyMessageContainingEnum.Builder> {
     private static readonly DummyMessageContainingEnum defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _dummyMessageContainingEnumFieldNames = new string[] {  };
@@ -1077,10 +1077,10 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum TestEnumType {
         TEST_OPTION_ENUM_TYPE1 = 22,
         TEST_OPTION_ENUM_TYPE2 = -23,
@@ -1153,7 +1153,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<DummyMessageContainingEnum, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1262,7 +1262,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class DummyMessageInvalidAsOptionType : pb::GeneratedMessage<DummyMessageInvalidAsOptionType, DummyMessageInvalidAsOptionType.Builder> {
     private static readonly DummyMessageInvalidAsOptionType defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _dummyMessageInvalidAsOptionTypeFieldNames = new string[] {  };
@@ -1351,7 +1351,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<DummyMessageInvalidAsOptionType, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1460,7 +1460,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class CustomOptionMinIntegerValues : pb::GeneratedMessage<CustomOptionMinIntegerValues, CustomOptionMinIntegerValues.Builder> {
     private static readonly CustomOptionMinIntegerValues defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _customOptionMinIntegerValuesFieldNames = new string[] {  };
@@ -1549,7 +1549,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<CustomOptionMinIntegerValues, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1658,7 +1658,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class CustomOptionMaxIntegerValues : pb::GeneratedMessage<CustomOptionMaxIntegerValues, CustomOptionMaxIntegerValues.Builder> {
     private static readonly CustomOptionMaxIntegerValues defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _customOptionMaxIntegerValuesFieldNames = new string[] {  };
@@ -1747,7 +1747,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<CustomOptionMaxIntegerValues, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1856,7 +1856,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class CustomOptionOtherValues : pb::GeneratedMessage<CustomOptionOtherValues, CustomOptionOtherValues.Builder> {
     private static readonly CustomOptionOtherValues defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _customOptionOtherValuesFieldNames = new string[] {  };
@@ -1945,7 +1945,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<CustomOptionOtherValues, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -2054,7 +2054,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class SettingRealsFromPositiveInts : pb::GeneratedMessage<SettingRealsFromPositiveInts, SettingRealsFromPositiveInts.Builder> {
     private static readonly SettingRealsFromPositiveInts defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _settingRealsFromPositiveIntsFieldNames = new string[] {  };
@@ -2143,7 +2143,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<SettingRealsFromPositiveInts, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -2252,7 +2252,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class SettingRealsFromNegativeInts : pb::GeneratedMessage<SettingRealsFromNegativeInts, SettingRealsFromNegativeInts.Builder> {
     private static readonly SettingRealsFromNegativeInts defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _settingRealsFromNegativeIntsFieldNames = new string[] {  };
@@ -2341,7 +2341,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<SettingRealsFromNegativeInts, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -2450,7 +2450,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ComplexOptionType1 : pb::ExtendableMessage<ComplexOptionType1, ComplexOptionType1.Builder> {
     private static readonly ComplexOptionType1 defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _complexOptionType1FieldNames = new string[] { "foo", "foo2", "foo3" };
@@ -2591,7 +2591,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<ComplexOptionType1, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -2776,7 +2776,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ComplexOptionType2 : pb::ExtendableMessage<ComplexOptionType2, ComplexOptionType2.Builder> {
     private static readonly ComplexOptionType2 defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _complexOptionType2FieldNames = new string[] { "bar", "baz", "fred" };
@@ -2804,11 +2804,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class ComplexOptionType4 : pb::GeneratedMessage<ComplexOptionType4, ComplexOptionType4.Builder> {
         private static readonly ComplexOptionType4 defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _complexOptionType4FieldNames = new string[] { "waldo" };
@@ -2915,7 +2915,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<ComplexOptionType4, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -3169,7 +3169,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<ComplexOptionType2, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -3400,7 +3400,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ComplexOptionType3 : pb::GeneratedMessage<ComplexOptionType3, ComplexOptionType3.Builder> {
     private static readonly ComplexOptionType3 defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _complexOptionType3FieldNames = new string[] { "complexoptiontype5", "qux" };
@@ -3428,11 +3428,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class ComplexOptionType5 : pb::GeneratedMessage<ComplexOptionType5, ComplexOptionType5.Builder> {
         private static readonly ComplexOptionType5 defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _complexOptionType5FieldNames = new string[] { "plugh" };
@@ -3537,7 +3537,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<ComplexOptionType5, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -3768,7 +3768,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<ComplexOptionType3, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -3950,7 +3950,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ComplexOpt6 : pb::GeneratedMessage<ComplexOpt6, ComplexOpt6.Builder> {
     private static readonly ComplexOpt6 defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _complexOpt6FieldNames = new string[] { "xyzzy" };
@@ -4055,7 +4055,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<ComplexOpt6, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -4189,7 +4189,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class VariousComplexOptions : pb::GeneratedMessage<VariousComplexOptions, VariousComplexOptions.Builder> {
     private static readonly VariousComplexOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _variousComplexOptionsFieldNames = new string[] {  };
@@ -4278,7 +4278,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<VariousComplexOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 4 - 4
src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestEmbedOptimizeForProtoFile {
   
     #region Extension registration
@@ -62,7 +62,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestEmbedOptimizedForSize : pb::GeneratedMessage<TestEmbedOptimizedForSize, TestEmbedOptimizedForSize.Builder> {
     private static readonly TestEmbedOptimizedForSize defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testEmbedOptimizedForSizeFieldNames = new string[] { "optional_message", "repeated_message" };
@@ -191,7 +191,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestEmbedOptimizedForSize, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 2 - 2
src/ProtocolBuffers.Test/TestProtos/UnitTestEmptyProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestEmptyProtoFile {
   
     #region Extension registration

+ 10 - 10
src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace UnitTest.Issues.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestExtrasIssuesProtoFile {
   
     #region Extension registration
@@ -75,7 +75,7 @@ namespace UnitTest.Issues.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class A : pb::GeneratedMessage<A, A.Builder> {
     private static readonly A defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _aFieldNames = new string[] { "_A" };
@@ -180,7 +180,7 @@ namespace UnitTest.Issues.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<A, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -314,7 +314,7 @@ namespace UnitTest.Issues.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class B : pb::GeneratedMessage<B, B.Builder> {
     private static readonly B defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _bFieldNames = new string[] { "B_" };
@@ -419,7 +419,7 @@ namespace UnitTest.Issues.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<B, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -553,7 +553,7 @@ namespace UnitTest.Issues.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class AB : pb::GeneratedMessage<AB, AB.Builder> {
     private static readonly AB defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _aBFieldNames = new string[] { "a_b" };
@@ -658,7 +658,7 @@ namespace UnitTest.Issues.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<AB, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -792,7 +792,7 @@ namespace UnitTest.Issues.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class NumberField : pb::GeneratedMessage<NumberField, NumberField.Builder> {
     private static readonly NumberField defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _numberFieldFieldNames = new string[] { "_01" };
@@ -899,7 +899,7 @@ namespace UnitTest.Issues.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<NumberField, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 6 - 6
src/ProtocolBuffers.Test/TestProtos/UnitTestGenericServices.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestGenericServices {
   
     #region Extension registration
@@ -62,7 +62,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Services
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public abstract class TestGenericService : pb::IService {
     public abstract void Foo(
         pb::IRpcController controller,
@@ -141,7 +141,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public class Stub : global::Google.ProtocolBuffers.TestProtos.TestGenericService {
       internal Stub(pb::IRpcChannel channel) {
         this.channel = channel;
@@ -174,7 +174,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public abstract class TestGenericServiceWithCustomOptions : pb::IService {
     public abstract void Foo(
         pb::IRpcController controller,
@@ -240,7 +240,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public class Stub : global::Google.ProtocolBuffers.TestProtos.TestGenericServiceWithCustomOptions {
       internal Stub(pb::IRpcChannel channel) {
         this.channel = channel;

+ 13 - 13
src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestGoogleSizeProtoFile {
   
     #region Extension registration
@@ -135,7 +135,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class SizeMessage1 : pb::GeneratedMessage<SizeMessage1, SizeMessage1.Builder> {
     private static readonly SizeMessage1 defaultInstance = new Builder().BuildPartial();
     public static SizeMessage1 DefaultInstance {
@@ -611,7 +611,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<SizeMessage1, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1436,7 +1436,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class SizeMessage1SubMessage : pb::GeneratedMessage<SizeMessage1SubMessage, SizeMessage1SubMessage.Builder> {
     private static readonly SizeMessage1SubMessage defaultInstance = new Builder().BuildPartial();
     public static SizeMessage1SubMessage DefaultInstance {
@@ -1702,7 +1702,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<SizeMessage1SubMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -2119,7 +2119,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class SizeMessage2 : pb::GeneratedMessage<SizeMessage2, SizeMessage2.Builder> {
     private static readonly SizeMessage2 defaultInstance = new Builder().BuildPartial();
     public static SizeMessage2 DefaultInstance {
@@ -2145,11 +2145,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class Group1 : pb::GeneratedMessage<Group1, Group1.Builder> {
         private static readonly Group1 defaultInstance = new Builder().BuildPartial();
         public static Group1 DefaultInstance {
@@ -2378,7 +2378,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<Group1, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -3118,7 +3118,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<SizeMessage2, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -3760,7 +3760,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class SizeMessage2GroupedMessage : pb::GeneratedMessage<SizeMessage2GroupedMessage, SizeMessage2GroupedMessage.Builder> {
     private static readonly SizeMessage2GroupedMessage defaultInstance = new Builder().BuildPartial();
     public static SizeMessage2GroupedMessage DefaultInstance {
@@ -3932,7 +3932,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<SizeMessage2GroupedMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 13 - 13
src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestGoogleSpeedProtoFile {
   
     #region Extension registration
@@ -135,7 +135,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class SpeedMessage1 : pb::GeneratedMessage<SpeedMessage1, SpeedMessage1.Builder> {
     private static readonly SpeedMessage1 defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _speedMessage1FieldNames = new string[] { "field1", "field100", "field101", "field102", "field103", "field104", "field12", "field128", "field129", "field13", "field130", "field131", "field14", "field15", "field150", "field16", "field17", "field18", "field2", "field22", "field23", "field24", "field25", "field271", "field272", "field280", "field29", "field3", "field30", "field4", "field5", "field59", "field6", "field60", "field67", "field68", "field7", "field78", "field80", "field81", "field9" };
@@ -890,7 +890,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<SpeedMessage1, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -2070,7 +2070,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class SpeedMessage1SubMessage : pb::GeneratedMessage<SpeedMessage1SubMessage, SpeedMessage1SubMessage.Builder> {
     private static readonly SpeedMessage1SubMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _speedMessage1SubMessageFieldNames = new string[] { "field1", "field12", "field13", "field14", "field15", "field16", "field19", "field2", "field20", "field203", "field204", "field205", "field206", "field207", "field21", "field22", "field23", "field28", "field3", "field300" };
@@ -2483,7 +2483,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<SpeedMessage1SubMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -3102,7 +3102,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class SpeedMessage2 : pb::GeneratedMessage<SpeedMessage2, SpeedMessage2.Builder> {
     private static readonly SpeedMessage2 defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _speedMessage2FieldNames = new string[] { "field1", "field109", "field127", "field128", "field129", "field130", "field131", "field2", "field205", "field206", "field21", "field210", "field211", "field212", "field213", "field216", "field217", "field218", "field220", "field221", "field222", "field25", "field3", "field30", "field4", "field6", "field63", "field71", "field75", "group1" };
@@ -3130,11 +3130,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class Group1 : pb::GeneratedMessage<Group1, Group1.Builder> {
         private static readonly Group1 defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _group1FieldNames = new string[] { "field11", "field12", "field13", "field14", "field15", "field16", "field20", "field22", "field24", "field26", "field27", "field28", "field29", "field31", "field5", "field73" };
@@ -3503,7 +3503,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<Group1, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -4643,7 +4643,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<SpeedMessage2, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -5558,7 +5558,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class SpeedMessage2GroupedMessage : pb::GeneratedMessage<SpeedMessage2GroupedMessage, SpeedMessage2GroupedMessage.Builder> {
     private static readonly SpeedMessage2GroupedMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _speedMessage2GroupedMessageFieldNames = new string[] { "field1", "field10", "field11", "field2", "field3", "field4", "field5", "field6", "field7", "field8", "field9" };
@@ -5823,7 +5823,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<SpeedMessage2GroupedMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 5 - 5
src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestImportLiteProtoFile {
   
     #region Extension registration
@@ -29,7 +29,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   #region Enums
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum ImportEnumLite {
     IMPORT_LITE_FOO = 7,
     IMPORT_LITE_BAR = 8,
@@ -41,7 +41,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ImportMessageLite : pb::GeneratedMessageLite<ImportMessageLite, ImportMessageLite.Builder> {
     private static readonly ImportMessageLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _importMessageLiteFieldNames = new string[] { "d" };
@@ -155,7 +155,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<ImportMessageLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 5 - 5
src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestImportProtoFile {
   
     #region Extension registration
@@ -57,7 +57,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   #region Enums
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum ImportEnum {
     IMPORT_FOO = 7,
     IMPORT_BAR = 8,
@@ -69,7 +69,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ImportMessage : pb::GeneratedMessage<ImportMessage, ImportMessage.Builder> {
     private static readonly ImportMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _importMessageFieldNames = new string[] { "d" };
@@ -174,7 +174,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<ImportMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 15 - 15
src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestMessageSetProtoFile {
   
     #region Extension registration
@@ -101,7 +101,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMessageSet : pb::ExtendableMessage<TestMessageSet, TestMessageSet.Builder> {
     private static readonly TestMessageSet defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testMessageSetFieldNames = new string[] {  };
@@ -194,7 +194,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestMessageSet, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -304,7 +304,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMessageSetContainer : pb::GeneratedMessage<TestMessageSetContainer, TestMessageSetContainer.Builder> {
     private static readonly TestMessageSetContainer defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testMessageSetContainerFieldNames = new string[] { "message_set" };
@@ -409,7 +409,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestMessageSetContainer, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -566,7 +566,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMessageSetExtension1 : pb::GeneratedMessage<TestMessageSetExtension1, TestMessageSetExtension1.Builder> {
     private static readonly TestMessageSetExtension1 defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testMessageSetExtension1FieldNames = new string[] { "i" };
@@ -673,7 +673,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestMessageSetExtension1, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -807,7 +807,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMessageSetExtension2 : pb::GeneratedMessage<TestMessageSetExtension2, TestMessageSetExtension2.Builder> {
     private static readonly TestMessageSetExtension2 defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testMessageSetExtension2FieldNames = new string[] { "str" };
@@ -914,7 +914,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestMessageSetExtension2, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1049,7 +1049,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class RawMessageSet : pb::GeneratedMessage<RawMessageSet, RawMessageSet.Builder> {
     private static readonly RawMessageSet defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _rawMessageSetFieldNames = new string[] { "item" };
@@ -1077,11 +1077,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class Item : pb::GeneratedMessage<Item, Item.Builder> {
         private static readonly Item defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _itemFieldNames = new string[] { "message", "type_id" };
@@ -1204,7 +1204,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<Item, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -1447,7 +1447,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<RawMessageSet, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 5 - 5
src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestNoGenericServicesProtoFile {
   
     #region Extension registration
@@ -69,7 +69,7 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
   }
   #region Enums
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum TestEnum {
     FOO = 1,
   }
@@ -79,7 +79,7 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMessage : pb::ExtendableMessage<TestMessage, TestMessage.Builder> {
     private static readonly TestMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testMessageFieldNames = new string[] { "a" };
@@ -188,7 +188,7 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 8 - 8
src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestOptimizeForProtoFile {
   
     #region Extension registration
@@ -83,7 +83,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestOptimizedForSize : pb::ExtendableMessage<TestOptimizedForSize, TestOptimizedForSize.Builder> {
     private static readonly TestOptimizedForSize defaultInstance = new Builder().BuildPartial();
     public static TestOptimizedForSize DefaultInstance {
@@ -169,7 +169,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestOptimizedForSize, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -270,7 +270,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestRequiredOptimizedForSize : pb::GeneratedMessage<TestRequiredOptimizedForSize, TestRequiredOptimizedForSize.Builder> {
     private static readonly TestRequiredOptimizedForSize defaultInstance = new Builder().BuildPartial();
     public static TestRequiredOptimizedForSize DefaultInstance {
@@ -342,7 +342,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestRequiredOptimizedForSize, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -407,7 +407,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestOptionalOptimizedForSize : pb::GeneratedMessage<TestOptionalOptimizedForSize, TestOptionalOptimizedForSize.Builder> {
     private static readonly TestOptionalOptimizedForSize defaultInstance = new Builder().BuildPartial();
     public static TestOptionalOptimizedForSize DefaultInstance {
@@ -479,7 +479,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestOptionalOptimizedForSize, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 93 - 93
src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestProtoFile {
   
     #region Extension registration
@@ -1086,7 +1086,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   #region Enums
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum ForeignEnum {
     FOREIGN_FOO = 4,
     FOREIGN_BAR = 5,
@@ -1094,7 +1094,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum TestEnumWithDupValue {
     FOO1 = 1,
     BAR1 = 2,
@@ -1104,7 +1104,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum TestSparseEnum {
     SPARSE_A = 123,
     SPARSE_B = 62374,
@@ -1120,7 +1120,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestAllTypes : pb::GeneratedMessage<TestAllTypes, TestAllTypes.Builder> {
     private static readonly TestAllTypes defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testAllTypesFieldNames = new string[] { "default_bool", "default_bytes", "default_cord", "default_double", "default_fixed32", "default_fixed64", "default_float", "default_foreign_enum", "default_import_enum", "default_int32", "default_int64", "default_nested_enum", "default_sfixed32", "default_sfixed64", "default_sint32", "default_sint64", "default_string", "default_string_piece", "default_uint32", "default_uint64", "optional_bool", "optional_bytes", "optional_cord", "optional_double", "optional_fixed32", "optional_fixed64", "optional_float", "optional_foreign_enum", "optional_foreign_message", "optional_import_enum", "optional_import_message", "optional_int32", "optional_int64", "optional_nested_enum", "optional_nested_message", "optional_sfixed32", "optional_sfixed64", "optional_sint32", "optional_sint64", "optional_string", "optional_string_piece", "optional_uint32", "optional_uint64", "optionalgroup", "repeated_bool", "repeated_bytes", "repeated_cord", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_import_enum", "repeated_import_message", "repeated_int32", "repeated_int64", "repeated_nested_enum", "repeated_nested_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_string_piece", "repeated_uint32", "repeated_uint64", "repeatedgroup" };
@@ -1148,10 +1148,10 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum NestedEnum {
         FOO = 1,
         BAR = 2,
@@ -1160,7 +1160,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
         private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _nestedMessageFieldNames = new string[] { "bb" };
@@ -1265,7 +1265,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -1399,7 +1399,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class OptionalGroup : pb::GeneratedMessage<OptionalGroup, OptionalGroup.Builder> {
         private static readonly OptionalGroup defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _optionalGroupFieldNames = new string[] { "a" };
@@ -1504,7 +1504,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -1638,7 +1638,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class RepeatedGroup : pb::GeneratedMessage<RepeatedGroup, RepeatedGroup.Builder> {
         private static readonly RepeatedGroup defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _repeatedGroupFieldNames = new string[] { "a" };
@@ -1743,7 +1743,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -3186,7 +3186,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestAllTypes, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -5494,7 +5494,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestDeprecatedFields : pb::GeneratedMessage<TestDeprecatedFields, TestDeprecatedFields.Builder> {
     private static readonly TestDeprecatedFields defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testDeprecatedFieldsFieldNames = new string[] { "deprecated_int32" };
@@ -5599,7 +5599,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestDeprecatedFields, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -5733,7 +5733,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ForeignMessage : pb::GeneratedMessage<ForeignMessage, ForeignMessage.Builder> {
     private static readonly ForeignMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _foreignMessageFieldNames = new string[] { "c" };
@@ -5838,7 +5838,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<ForeignMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -5972,7 +5972,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestAllExtensions : pb::ExtendableMessage<TestAllExtensions, TestAllExtensions.Builder> {
     private static readonly TestAllExtensions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testAllExtensionsFieldNames = new string[] {  };
@@ -6065,7 +6065,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestAllExtensions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -6175,7 +6175,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class OptionalGroup_extension : pb::GeneratedMessage<OptionalGroup_extension, OptionalGroup_extension.Builder> {
     private static readonly OptionalGroup_extension defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _optionalGroupExtensionFieldNames = new string[] { "a" };
@@ -6280,7 +6280,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup_extension, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -6414,7 +6414,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class RepeatedGroup_extension : pb::GeneratedMessage<RepeatedGroup_extension, RepeatedGroup_extension.Builder> {
     private static readonly RepeatedGroup_extension defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _repeatedGroupExtensionFieldNames = new string[] { "a" };
@@ -6519,7 +6519,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup_extension, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -6653,7 +6653,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestNestedExtension : pb::GeneratedMessage<TestNestedExtension, TestNestedExtension.Builder> {
     private static readonly TestNestedExtension defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testNestedExtensionFieldNames = new string[] {  };
@@ -6744,7 +6744,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestNestedExtension, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -6853,7 +6853,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestRequired : pb::GeneratedMessage<TestRequired, TestRequired.Builder> {
     private static readonly TestRequired defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testRequiredFieldNames = new string[] { "a", "b", "c", "dummy10", "dummy11", "dummy12", "dummy13", "dummy14", "dummy15", "dummy16", "dummy17", "dummy18", "dummy19", "dummy2", "dummy20", "dummy21", "dummy22", "dummy23", "dummy24", "dummy25", "dummy26", "dummy27", "dummy28", "dummy29", "dummy30", "dummy31", "dummy32", "dummy4", "dummy5", "dummy6", "dummy7", "dummy8", "dummy9" };
@@ -7477,7 +7477,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestRequired, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -8411,7 +8411,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestRequiredForeign : pb::GeneratedMessage<TestRequiredForeign, TestRequiredForeign.Builder> {
     private static readonly TestRequiredForeign defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testRequiredForeignFieldNames = new string[] { "dummy", "optional_message", "repeated_message" };
@@ -8556,7 +8556,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestRequiredForeign, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -8784,7 +8784,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestForeignNested : pb::GeneratedMessage<TestForeignNested, TestForeignNested.Builder> {
     private static readonly TestForeignNested defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testForeignNestedFieldNames = new string[] { "foreign_nested" };
@@ -8889,7 +8889,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestForeignNested, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9046,7 +9046,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestEmptyMessage : pb::GeneratedMessage<TestEmptyMessage, TestEmptyMessage.Builder> {
     private static readonly TestEmptyMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testEmptyMessageFieldNames = new string[] {  };
@@ -9135,7 +9135,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestEmptyMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9244,7 +9244,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestEmptyMessageWithExtensions : pb::ExtendableMessage<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder> {
     private static readonly TestEmptyMessageWithExtensions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testEmptyMessageWithExtensionsFieldNames = new string[] {  };
@@ -9337,7 +9337,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestEmptyMessageWithExtensions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9447,7 +9447,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMultipleExtensionRanges : pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> {
     private static readonly TestMultipleExtensionRanges defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testMultipleExtensionRangesFieldNames = new string[] {  };
@@ -9542,7 +9542,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestMultipleExtensionRanges, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9652,7 +9652,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestReallyLargeTagNumber : pb::GeneratedMessage<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> {
     private static readonly TestReallyLargeTagNumber defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testReallyLargeTagNumberFieldNames = new string[] { "a", "bb" };
@@ -9773,7 +9773,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestReallyLargeTagNumber, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9932,7 +9932,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestRecursiveMessage : pb::GeneratedMessage<TestRecursiveMessage, TestRecursiveMessage.Builder> {
     private static readonly TestRecursiveMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testRecursiveMessageFieldNames = new string[] { "a", "i" };
@@ -10053,7 +10053,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestRecursiveMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -10235,7 +10235,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMutualRecursionA : pb::GeneratedMessage<TestMutualRecursionA, TestMutualRecursionA.Builder> {
     private static readonly TestMutualRecursionA defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testMutualRecursionAFieldNames = new string[] { "bb" };
@@ -10340,7 +10340,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestMutualRecursionA, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -10497,7 +10497,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMutualRecursionB : pb::GeneratedMessage<TestMutualRecursionB, TestMutualRecursionB.Builder> {
     private static readonly TestMutualRecursionB defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testMutualRecursionBFieldNames = new string[] { "a", "optional_int32" };
@@ -10618,7 +10618,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestMutualRecursionB, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -10800,7 +10800,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestDupFieldNumber : pb::GeneratedMessage<TestDupFieldNumber, TestDupFieldNumber.Builder> {
     private static readonly TestDupFieldNumber defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testDupFieldNumberFieldNames = new string[] { "a", "bar", "foo" };
@@ -10828,11 +10828,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class Foo : pb::GeneratedMessage<Foo, Foo.Builder> {
         private static readonly Foo defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _fooFieldNames = new string[] { "a" };
@@ -10937,7 +10937,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<Foo, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -11071,7 +11071,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class Bar : pb::GeneratedMessage<Bar, Bar.Builder> {
         private static readonly Bar defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _barFieldNames = new string[] { "a" };
@@ -11176,7 +11176,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<Bar, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -11423,7 +11423,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestDupFieldNumber, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -11653,7 +11653,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestNestedMessageHasBits : pb::GeneratedMessage<TestNestedMessageHasBits, TestNestedMessageHasBits.Builder> {
     private static readonly TestNestedMessageHasBits defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testNestedMessageHasBitsFieldNames = new string[] { "optional_nested_message" };
@@ -11681,11 +11681,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
         private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _nestedMessageFieldNames = new string[] { "nestedmessage_repeated_foreignmessage", "nestedmessage_repeated_int32" };
@@ -11815,7 +11815,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -12086,7 +12086,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestNestedMessageHasBits, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -12243,7 +12243,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestCamelCaseFieldNames : pb::GeneratedMessage<TestCamelCaseFieldNames, TestCamelCaseFieldNames.Builder> {
     private static readonly TestCamelCaseFieldNames defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testCamelCaseFieldNamesFieldNames = new string[] { "CordField", "EnumField", "MessageField", "PrimitiveField", "RepeatedCordField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedStringPieceField", "StringField", "StringPieceField" };
@@ -12563,7 +12563,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestCamelCaseFieldNames, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -13089,7 +13089,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestFieldOrderings : pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder> {
     private static readonly TestFieldOrderings defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testFieldOrderingsFieldNames = new string[] { "my_float", "my_int", "my_string" };
@@ -13231,7 +13231,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestFieldOrderings, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -13417,7 +13417,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestExtremeDefaultValues : pb::GeneratedMessage<TestExtremeDefaultValues, TestExtremeDefaultValues.Builder> {
     private static readonly TestExtremeDefaultValues defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testExtremeDefaultValuesFieldNames = new string[] { "escaped_bytes", "inf_double", "inf_float", "large_float", "large_uint32", "large_uint64", "nan_double", "nan_float", "neg_inf_double", "neg_inf_float", "negative_float", "negative_one_float", "one_float", "small_float", "small_int32", "small_int64", "small_negative_float", "utf8_string", "zero_float" };
@@ -13812,7 +13812,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestExtremeDefaultValues, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -14402,7 +14402,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class OneString : pb::GeneratedMessage<OneString, OneString.Builder> {
     private static readonly OneString defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _oneStringFieldNames = new string[] { "data" };
@@ -14507,7 +14507,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<OneString, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -14642,7 +14642,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class OneBytes : pb::GeneratedMessage<OneBytes, OneBytes.Builder> {
     private static readonly OneBytes defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _oneBytesFieldNames = new string[] { "data" };
@@ -14747,7 +14747,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<OneBytes, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -14882,7 +14882,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestPackedTypes : pb::GeneratedMessage<TestPackedTypes, TestPackedTypes.Builder> {
     private static readonly TestPackedTypes defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testPackedTypesFieldNames = new string[] { "packed_bool", "packed_double", "packed_enum", "packed_fixed32", "packed_fixed64", "packed_float", "packed_int32", "packed_int64", "packed_sfixed32", "packed_sfixed64", "packed_sint32", "packed_sint64", "packed_uint32", "packed_uint64" };
@@ -15344,7 +15344,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestPackedTypes, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -15972,7 +15972,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestUnpackedTypes : pb::GeneratedMessage<TestUnpackedTypes, TestUnpackedTypes.Builder> {
     private static readonly TestUnpackedTypes defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testUnpackedTypesFieldNames = new string[] { "unpacked_bool", "unpacked_double", "unpacked_enum", "unpacked_fixed32", "unpacked_fixed64", "unpacked_float", "unpacked_int32", "unpacked_int64", "unpacked_sfixed32", "unpacked_sfixed64", "unpacked_sint32", "unpacked_sint64", "unpacked_uint32", "unpacked_uint64" };
@@ -16379,7 +16379,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestUnpackedTypes, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -17007,7 +17007,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestPackedExtensions : pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder> {
     private static readonly TestPackedExtensions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testPackedExtensionsFieldNames = new string[] {  };
@@ -17100,7 +17100,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestPackedExtensions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -17210,7 +17210,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestUnpackedExtensions : pb::ExtendableMessage<TestUnpackedExtensions, TestUnpackedExtensions.Builder> {
     private static readonly TestUnpackedExtensions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testUnpackedExtensionsFieldNames = new string[] {  };
@@ -17303,7 +17303,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestUnpackedExtensions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -17413,7 +17413,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestDynamicExtensions : pb::GeneratedMessage<TestDynamicExtensions, TestDynamicExtensions.Builder> {
     private static readonly TestDynamicExtensions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testDynamicExtensionsFieldNames = new string[] { "dynamic_enum_extension", "dynamic_message_extension", "enum_extension", "message_extension", "packed_extension", "repeated_extension", "scalar_extension" };
@@ -17441,10 +17441,10 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum DynamicEnumType {
         DYNAMIC_FOO = 2200,
         DYNAMIC_BAR = 2201,
@@ -17453,7 +17453,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class DynamicMessageType : pb::GeneratedMessage<DynamicMessageType, DynamicMessageType.Builder> {
         private static readonly DynamicMessageType defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _dynamicMessageTypeFieldNames = new string[] { "dynamic_field" };
@@ -17558,7 +17558,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<DynamicMessageType, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -17888,7 +17888,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestDynamicExtensions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -18257,7 +18257,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::GeneratedMessage<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> {
     private static readonly TestRepeatedScalarDifferentTagSizes defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testRepeatedScalarDifferentTagSizesFieldNames = new string[] { "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_int32", "repeated_int64", "repeated_uint64" };
@@ -18484,7 +18484,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestRepeatedScalarDifferentTagSizes, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -18818,7 +18818,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class FooRequest : pb::GeneratedMessage<FooRequest, FooRequest.Builder> {
     private static readonly FooRequest defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _fooRequestFieldNames = new string[] {  };
@@ -18907,7 +18907,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<FooRequest, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -19016,7 +19016,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class FooResponse : pb::GeneratedMessage<FooResponse, FooResponse.Builder> {
     private static readonly FooResponse defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _fooResponseFieldNames = new string[] {  };
@@ -19105,7 +19105,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<FooResponse, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -19214,7 +19214,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class BarRequest : pb::GeneratedMessage<BarRequest, BarRequest.Builder> {
     private static readonly BarRequest defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _barRequestFieldNames = new string[] {  };
@@ -19303,7 +19303,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<BarRequest, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -19412,7 +19412,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class BarResponse : pb::GeneratedMessage<BarResponse, BarResponse.Builder> {
     private static readonly BarResponse defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _barResponseFieldNames = new string[] {  };
@@ -19501,7 +19501,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<BarResponse, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 15 - 15
src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestRpcInterop {
   
     #region Extension registration
@@ -81,7 +81,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class SearchRequest : pb::GeneratedMessage<SearchRequest, SearchRequest.Builder> {
     private static readonly SearchRequest defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _searchRequestFieldNames = new string[] { "Criteria" };
@@ -193,7 +193,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<SearchRequest, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -338,7 +338,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class SearchResponse : pb::GeneratedMessage<SearchResponse, SearchResponse.Builder> {
     private static readonly SearchResponse defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _searchResponseFieldNames = new string[] { "results" };
@@ -366,11 +366,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class ResultItem : pb::GeneratedMessage<ResultItem, ResultItem.Builder> {
         private static readonly ResultItem defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _resultItemFieldNames = new string[] { "name", "url" };
@@ -492,7 +492,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<ResultItem, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -739,7 +739,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<SearchResponse, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -894,7 +894,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class RefineSearchRequest : pb::GeneratedMessage<RefineSearchRequest, RefineSearchRequest.Builder> {
     private static readonly RefineSearchRequest defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _refineSearchRequestFieldNames = new string[] { "Criteria", "previous_results" };
@@ -1024,7 +1024,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<RefineSearchRequest, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1220,7 +1220,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Services
   [global::System.Runtime.InteropServices.GuidAttribute("a65f0925-fd11-4f94-b166-89ac4f027205")]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public partial interface ISearchService {
     [global::System.Runtime.InteropServices.DispId(5)]
     global::Google.ProtocolBuffers.TestProtos.SearchResponse Search(global::Google.ProtocolBuffers.TestProtos.SearchRequest searchRequest);
@@ -1230,7 +1230,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   [global::System.CLSCompliant(false)]
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public partial class SearchService : ISearchService, pb::IRpcDispatch, global::System.IDisposable {
     private readonly bool dispose;
     private readonly pb::IRpcDispatch dispatch;
@@ -1260,7 +1260,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     [global::System.CLSCompliant(false)]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public partial class Dispatch : pb::IRpcDispatch, global::System.IDisposable {
       private readonly bool dispose;
       private readonly ISearchService implementation;
@@ -1288,7 +1288,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     [global::System.CLSCompliant(false)]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public partial class ServerStub : pb::IRpcServerStub, global::System.IDisposable {
       private readonly bool dispose;
       private readonly pb::IRpcDispatch implementation;

+ 16 - 16
src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestXmlSerializerTestProtoFile {
   
     #region Extension registration
@@ -124,7 +124,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   #region Enums
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum EnumOptions {
     ONE = 0,
     TWO = 1,
@@ -136,7 +136,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestXmlChild : pb::GeneratedMessage<TestXmlChild, TestXmlChild.Builder> {
     private static readonly TestXmlChild defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testXmlChildFieldNames = new string[] { "binary", "options" };
@@ -266,7 +266,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestXmlChild, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -445,7 +445,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestXmlNoFields : pb::GeneratedMessage<TestXmlNoFields, TestXmlNoFields.Builder> {
     private static readonly TestXmlNoFields defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testXmlNoFieldsFieldNames = new string[] {  };
@@ -534,7 +534,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestXmlNoFields, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -643,7 +643,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestXmlRescursive : pb::GeneratedMessage<TestXmlRescursive, TestXmlRescursive.Builder> {
     private static readonly TestXmlRescursive defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testXmlRescursiveFieldNames = new string[] { "child" };
@@ -748,7 +748,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestXmlRescursive, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -905,7 +905,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestXmlMessage : pb::ExtendableMessage<TestXmlMessage, TestXmlMessage.Builder> {
     private static readonly TestXmlMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testXmlMessageFieldNames = new string[] { "child", "children", "number", "numbers", "text", "textlines", "valid" };
@@ -933,11 +933,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class Children : pb::GeneratedMessage<Children, Children.Builder> {
         private static readonly Children defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _childrenFieldNames = new string[] { "binary", "options" };
@@ -1067,7 +1067,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<Children, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -1443,7 +1443,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestXmlMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1794,7 +1794,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestXmlExtension : pb::GeneratedMessage<TestXmlExtension, TestXmlExtension.Builder> {
     private static readonly TestXmlExtension defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testXmlExtensionFieldNames = new string[] { "number" };
@@ -1900,7 +1900,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestXmlExtension, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 64 - 0
src/ProtocolBuffers.Test/TestWriterFormatJson.cs

@@ -10,6 +10,70 @@ namespace Google.ProtocolBuffers
     [TestFixture]
     public class TestWriterFormatJson
     {
+        [Test]
+        public void Example_FromJson()
+        {
+            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+
+            builder.MergeFromJson(@"{""valid"":true}");
+            
+            TestXmlMessage message = builder.Build();
+            Assert.AreEqual(true, message.Valid);
+        }
+
+        [Test]
+        public void Example_ToJson()
+        {
+            TestXmlMessage message = 
+                TestXmlMessage.CreateBuilder()
+                .SetValid(true)
+                .Build();
+
+            string json = message.ToJson();
+
+            Assert.AreEqual(@"{""valid"":true}", json);
+        }
+
+        [Test]
+        public void Example_WriteJsonUsingICodedOutputStream()
+        {
+            TestXmlMessage message =
+                TestXmlMessage.CreateBuilder()
+                .SetValid(true)
+                .Build();
+
+            using (TextWriter output = new StringWriter())
+            using (AbstractWriter writer = JsonFormatWriter.CreateInstance(output))
+            {
+                writer.StartMessage();      //manually begin the message, output is '{'
+                
+                writer.Flush();
+                Assert.AreEqual("{", output.ToString());
+
+                ICodedOutputStream stream = writer;
+                message.WriteTo(stream);    //write the message normally
+
+                writer.Flush();
+                Assert.AreEqual(@"{""valid"":true", output.ToString());
+
+                writer.EndMessage();        //manually write the end message '}'
+                Assert.AreEqual(@"{""valid"":true}", output.ToString());
+            }
+        }
+
+        [Test]
+        public void Example_ReadJsonUsingICodedInputStream()
+        {
+            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+            AbstractReader reader = JsonFormatReader.CreateInstance(@"{""valid"":true}");
+
+            AbstractReader stream = reader.ReadStartMessage();  //manually read the begin the message '{'
+
+            builder.MergeFrom(stream);  //write the message normally
+
+            stream.ReadEndMessage();    //manually read the end message '}'
+        }
+
         protected string Content;
         [System.Diagnostics.DebuggerNonUserCode]
         protected void FormatterAssert<TMessage>(TMessage message, params string[] expecting) where TMessage : IMessageLite

+ 72 - 0
src/ProtocolBuffers.Test/TestWriterFormatXml.cs

@@ -12,6 +12,65 @@ namespace Google.ProtocolBuffers
     [TestFixture]
     public class TestWriterFormatXml
     {
+        [Test]
+        public void Example_FromXml()
+        {
+            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+
+            XmlReader rdr = XmlReader.Create(new StringReader(@"<root><valid>true</valid></root>"));
+            builder.MergeFromXml(rdr);
+
+            TestXmlMessage message = builder.Build();
+            Assert.AreEqual(true, message.Valid);
+        }
+
+        [Test]
+        public void Example_ToXml()
+        {
+            TestXmlMessage message =
+                TestXmlMessage.CreateBuilder()
+                .SetValid(true)
+                .Build();
+
+            string Xml = message.ToXml();
+
+            Assert.AreEqual(@"<root><valid>true</valid></root>", Xml);
+        }
+
+        [Test]
+        public void Example_WriteXmlUsingICodedOutputStream()
+        {
+            TestXmlMessage message =
+                TestXmlMessage.CreateBuilder()
+                .SetValid(true)
+                .Build();
+
+            using (TextWriter output = new StringWriter())
+            using (AbstractWriter writer = XmlFormatWriter.CreateInstance(output))
+            {
+                writer.StartMessage();      //manually begin the message, output is '{'
+
+                ICodedOutputStream stream = writer;
+                message.WriteTo(stream);    //write the message normally
+
+                writer.EndMessage();        //manually write the end message '}'
+                Assert.AreEqual(@"<root><valid>true</valid></root>", output.ToString());
+            }
+        }
+
+        [Test]
+        public void Example_ReadXmlUsingICodedInputStream()
+        {
+            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+            AbstractReader reader = XmlFormatReader.CreateInstance(@"<root><valid>true</valid></root>");
+
+            AbstractReader stream = reader.ReadStartMessage();  //manually read the begin the message '{'
+
+            builder.MergeFrom(stream);  //write the message normally
+
+            stream.ReadEndMessage();    //manually read the end message '}'
+        }
+
         [Test]
         public void TestToXmlParseFromXml()
         {
@@ -324,6 +383,19 @@ namespace Google.ProtocolBuffers
             TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder(), registry).Build();
             Assert.AreEqual(message, copy);
         }
+        [Test]
+        public void TestXmlReadEmptyRoot()
+        {
+            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+            AbstractReader reader = XmlFormatReader.CreateInstance(@"<root/>");
+
+            AbstractReader stream = reader.ReadStartMessage();  //manually read the begin the message '{'
+
+            builder.MergeFrom(stream);  //write the message normally
+
+            stream.ReadEndMessage();    //manually read the end message '}'
+        }
+
         [Test, ExpectedException(typeof(RecursionLimitExceededException))]
         public void TestRecursiveLimit()
         {

+ 11 - 11
src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class CSharpOptions {
   
     #region Extension registration
@@ -110,7 +110,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   }
   #region Enums
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum CSharpServiceType {
     NONE = 0,
     GENERIC = 1,
@@ -123,7 +123,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class CSharpFileOptions : pb::GeneratedMessage<CSharpFileOptions, CSharpFileOptions.Builder> {
     private static readonly CSharpFileOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _cSharpFileOptionsFieldNames = new string[] { "cls_compliance", "code_contracts", "expand_namespace_directories", "file_extension", "ignore_google_protobuf", "multiple_files", "namespace", "nest_classes", "output_directory", "public_classes", "service_generator_type", "umbrella_classname", "umbrella_namespace" };
@@ -420,7 +420,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<CSharpFileOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -867,7 +867,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class CSharpFieldOptions : pb::GeneratedMessage<CSharpFieldOptions, CSharpFieldOptions.Builder> {
     private static readonly CSharpFieldOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _cSharpFieldOptionsFieldNames = new string[] { "property_name" };
@@ -972,7 +972,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<CSharpFieldOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1107,7 +1107,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class CSharpServiceOptions : pb::GeneratedMessage<CSharpServiceOptions, CSharpServiceOptions.Builder> {
     private static readonly CSharpServiceOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _cSharpServiceOptionsFieldNames = new string[] { "interface_id" };
@@ -1212,7 +1212,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<CSharpServiceOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1347,7 +1347,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class CSharpMethodOptions : pb::GeneratedMessage<CSharpMethodOptions, CSharpMethodOptions.Builder> {
     private static readonly CSharpMethodOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _cSharpMethodOptionsFieldNames = new string[] { "dispatch_id" };
@@ -1452,7 +1452,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<CSharpMethodOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 47 - 47
src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class DescriptorProtoFile {
   
     #region Extension registration
@@ -231,7 +231,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class FileDescriptorSet : pb::GeneratedMessage<FileDescriptorSet, FileDescriptorSet.Builder> {
     private static readonly FileDescriptorSet defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _fileDescriptorSetFieldNames = new string[] { "file" };
@@ -341,7 +341,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<FileDescriptorSet, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -496,7 +496,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class FileDescriptorProto : pb::GeneratedMessage<FileDescriptorProto, FileDescriptorProto.Builder> {
     private static readonly FileDescriptorProto defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _fileDescriptorProtoFieldNames = new string[] { "dependency", "enum_type", "extension", "message_type", "name", "options", "package", "service" };
@@ -743,7 +743,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<FileDescriptorProto, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1172,7 +1172,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class DescriptorProto : pb::GeneratedMessage<DescriptorProto, DescriptorProto.Builder> {
     private static readonly DescriptorProto defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _descriptorProtoFieldNames = new string[] { "enum_type", "extension", "extension_range", "field", "name", "nested_type", "options" };
@@ -1200,11 +1200,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class ExtensionRange : pb::GeneratedMessage<ExtensionRange, ExtensionRange.Builder> {
         private static readonly ExtensionRange defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _extensionRangeFieldNames = new string[] { "end", "start" };
@@ -1325,7 +1325,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<ExtensionRange, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -1686,7 +1686,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<DescriptorProto, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -2099,7 +2099,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class FieldDescriptorProto : pb::GeneratedMessage<FieldDescriptorProto, FieldDescriptorProto.Builder> {
     private static readonly FieldDescriptorProto defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _fieldDescriptorProtoFieldNames = new string[] { "default_value", "extendee", "label", "name", "number", "options", "type", "type_name" };
@@ -2127,10 +2127,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum Type {
         TYPE_DOUBLE = 1,
         TYPE_FLOAT = 2,
@@ -2153,7 +2153,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum Label {
         LABEL_OPTIONAL = 1,
         LABEL_REQUIRED = 2,
@@ -2358,7 +2358,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<FieldDescriptorProto, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -2710,7 +2710,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class EnumDescriptorProto : pb::GeneratedMessage<EnumDescriptorProto, EnumDescriptorProto.Builder> {
     private static readonly EnumDescriptorProto defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _enumDescriptorProtoFieldNames = new string[] { "name", "options", "value" };
@@ -2855,7 +2855,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<EnumDescriptorProto, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -3084,7 +3084,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class EnumValueDescriptorProto : pb::GeneratedMessage<EnumValueDescriptorProto, EnumValueDescriptorProto.Builder> {
     private static readonly EnumValueDescriptorProto defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _enumValueDescriptorProtoFieldNames = new string[] { "name", "number", "options" };
@@ -3224,7 +3224,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<EnumValueDescriptorProto, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -3432,7 +3432,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ServiceDescriptorProto : pb::GeneratedMessage<ServiceDescriptorProto, ServiceDescriptorProto.Builder> {
     private static readonly ServiceDescriptorProto defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _serviceDescriptorProtoFieldNames = new string[] { "method", "name", "options" };
@@ -3577,7 +3577,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<ServiceDescriptorProto, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -3806,7 +3806,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class MethodDescriptorProto : pb::GeneratedMessage<MethodDescriptorProto, MethodDescriptorProto.Builder> {
     private static readonly MethodDescriptorProto defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _methodDescriptorProtoFieldNames = new string[] { "input_type", "name", "options", "output_type" };
@@ -3962,7 +3962,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<MethodDescriptorProto, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -4197,7 +4197,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class FileOptions : pb::ExtendableMessage<FileOptions, FileOptions.Builder> {
     private static readonly FileOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _fileOptionsFieldNames = new string[] { "cc_generic_services", "java_generic_services", "java_multiple_files", "java_outer_classname", "java_package", "optimize_for", "py_generic_services", "uninterpreted_option" };
@@ -4225,10 +4225,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum OptimizeMode {
         SPEED = 1,
         CODE_SIZE = 2,
@@ -4439,7 +4439,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<FileOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -4780,7 +4780,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class MessageOptions : pb::ExtendableMessage<MessageOptions, MessageOptions.Builder> {
     private static readonly MessageOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _messageOptionsFieldNames = new string[] { "message_set_wire_format", "no_standard_descriptor_accessor", "uninterpreted_option" };
@@ -4926,7 +4926,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<MessageOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -5132,7 +5132,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class FieldOptions : pb::ExtendableMessage<FieldOptions, FieldOptions.Builder> {
     private static readonly FieldOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _fieldOptionsFieldNames = new string[] { "ctype", "deprecated", "experimental_map_key", "packed", "uninterpreted_option" };
@@ -5160,10 +5160,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum CType {
         STRING = 0,
         CORD = 1,
@@ -5326,7 +5326,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<FieldOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -5591,7 +5591,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class EnumOptions : pb::ExtendableMessage<EnumOptions, EnumOptions.Builder> {
     private static readonly EnumOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _enumOptionsFieldNames = new string[] { "uninterpreted_option" };
@@ -5705,7 +5705,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<EnumOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -5861,7 +5861,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class EnumValueOptions : pb::ExtendableMessage<EnumValueOptions, EnumValueOptions.Builder> {
     private static readonly EnumValueOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _enumValueOptionsFieldNames = new string[] { "uninterpreted_option" };
@@ -5975,7 +5975,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<EnumValueOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -6131,7 +6131,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ServiceOptions : pb::ExtendableMessage<ServiceOptions, ServiceOptions.Builder> {
     private static readonly ServiceOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _serviceOptionsFieldNames = new string[] { "uninterpreted_option" };
@@ -6245,7 +6245,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<ServiceOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -6401,7 +6401,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class MethodOptions : pb::ExtendableMessage<MethodOptions, MethodOptions.Builder> {
     private static readonly MethodOptions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _methodOptionsFieldNames = new string[] { "uninterpreted_option" };
@@ -6515,7 +6515,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<MethodOptions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -6671,7 +6671,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class UninterpretedOption : pb::GeneratedMessage<UninterpretedOption, UninterpretedOption.Builder> {
     private static readonly UninterpretedOption defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _uninterpretedOptionFieldNames = new string[] { "double_value", "identifier_value", "name", "negative_int_value", "positive_int_value", "string_value" };
@@ -6699,11 +6699,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class NamePart : pb::GeneratedMessage<NamePart, NamePart.Builder> {
         private static readonly NamePart defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _namePartFieldNames = new string[] { "is_extension", "name_part" };
@@ -6826,7 +6826,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<NamePart, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -7153,7 +7153,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<UninterpretedOption, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 3 - 3
src/ProtocolBuffers/Properties/AssemblyInfo.cs

@@ -65,12 +65,12 @@ using System.Runtime.CompilerServices;
 //
 // You can specify all the values or you can default the Build and Revision Numbers 
 // by using the '*' as shown below:
-// [assembly: AssemblyVersion("2.3.0.277")]
+// [assembly: AssemblyVersion("2.3.0.369")]
 
-[assembly: AssemblyVersion("2.3.0.277")]
+[assembly: AssemblyVersion("2.3.0.369")]
 #if !COMPACT_FRAMEWORK_35
 
-[assembly: AssemblyFileVersion("2.3.0.277")]
+[assembly: AssemblyFileVersion("2.3.0.369")]
 #endif
 
 [assembly: CLSCompliant(true)]

+ 22 - 22
src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestExtrasFullProtoFile {
   
     #region Extension registration
@@ -126,7 +126,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestInteropPerson : pb::ExtendableMessage<TestInteropPerson, TestInteropPerson.Builder> {
     private static readonly TestInteropPerson defaultInstance = new Builder().BuildPartial();
     public static TestInteropPerson DefaultInstance {
@@ -152,10 +152,10 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum PhoneType {
         MOBILE = 0,
         HOME = 1,
@@ -164,7 +164,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class PhoneNumber : pb::GeneratedMessage<PhoneNumber, PhoneNumber.Builder> {
         private static readonly PhoneNumber defaultInstance = new Builder().BuildPartial();
         public static PhoneNumber DefaultInstance {
@@ -246,7 +246,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<PhoneNumber, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -330,7 +330,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class Addresses : pb::GeneratedMessage<Addresses, Addresses.Builder> {
         private static readonly Addresses defaultInstance = new Builder().BuildPartial();
         public static Addresses DefaultInstance {
@@ -443,7 +443,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<Addresses, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -692,7 +692,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestInteropPerson, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -900,7 +900,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestInteropEmployeeId : pb::GeneratedMessage<TestInteropEmployeeId, TestInteropEmployeeId.Builder> {
     private static readonly TestInteropEmployeeId defaultInstance = new Builder().BuildPartial();
     public static TestInteropEmployeeId DefaultInstance {
@@ -972,7 +972,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestInteropEmployeeId, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1038,7 +1038,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMissingFieldsA : pb::GeneratedMessage<TestMissingFieldsA, TestMissingFieldsA.Builder> {
     private static readonly TestMissingFieldsA defaultInstance = new Builder().BuildPartial();
     public static TestMissingFieldsA DefaultInstance {
@@ -1064,11 +1064,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class SubA : pb::GeneratedMessage<SubA, SubA.Builder> {
         private static readonly SubA defaultInstance = new Builder().BuildPartial();
         public static SubA DefaultInstance {
@@ -1152,7 +1152,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<SubA, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -1326,7 +1326,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestMissingFieldsA, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1465,7 +1465,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMissingFieldsB : pb::GeneratedMessage<TestMissingFieldsB, TestMissingFieldsB.Builder> {
     private static readonly TestMissingFieldsB defaultInstance = new Builder().BuildPartial();
     public static TestMissingFieldsB DefaultInstance {
@@ -1491,11 +1491,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class SubB : pb::GeneratedMessage<SubB, SubB.Builder> {
         private static readonly SubB defaultInstance = new Builder().BuildPartial();
         public static SubB DefaultInstance {
@@ -1569,7 +1569,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<SubB, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -1725,7 +1725,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestMissingFieldsB, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 15 - 15
src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestExtrasLiteProtoFile {
   
     #region Extension registration
@@ -44,7 +44,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   #region Enums
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum ExtraEnum {
     DEFAULT = 10,
     EXLITE_FOO = 7,
@@ -57,7 +57,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestRequiredLite : pb::GeneratedMessageLite<TestRequiredLite, TestRequiredLite.Builder> {
     private static readonly TestRequiredLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testRequiredLiteFieldNames = new string[] { "d", "en" };
@@ -192,7 +192,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<TestRequiredLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -337,7 +337,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestInteropPersonLite : pb::ExtendableMessageLite<TestInteropPersonLite, TestInteropPersonLite.Builder> {
     private static readonly TestInteropPersonLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testInteropPersonLiteFieldNames = new string[] { "addresses", "codes", "email", "id", "name", "phone" };
@@ -357,10 +357,10 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum PhoneType {
         MOBILE = 0,
         HOME = 1,
@@ -369,7 +369,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class PhoneNumber : pb::GeneratedMessageLite<PhoneNumber, PhoneNumber.Builder> {
         private static readonly PhoneNumber defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _phoneNumberFieldNames = new string[] { "number", "type" };
@@ -503,7 +503,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilderLite<PhoneNumber, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -649,7 +649,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class Addresses : pb::GeneratedMessageLite<Addresses, Addresses.Builder> {
         private static readonly Addresses defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _addressesFieldNames = new string[] { "address", "address2", "city", "state", "zip" };
@@ -844,7 +844,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilderLite<Addresses, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -1295,7 +1295,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilderLite<TestInteropPersonLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -1591,7 +1591,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestInteropEmployeeIdLite : pb::GeneratedMessageLite<TestInteropEmployeeIdLite, TestInteropEmployeeIdLite.Builder> {
     private static readonly TestInteropEmployeeIdLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testInteropEmployeeIdLiteFieldNames = new string[] { "number" };
@@ -1706,7 +1706,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<TestInteropEmployeeIdLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 5 - 5
src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestImportLiteProtoFile {
   
     #region Extension registration
@@ -29,7 +29,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   #region Enums
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum ImportEnumLite {
     IMPORT_LITE_FOO = 7,
     IMPORT_LITE_BAR = 8,
@@ -41,7 +41,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ImportMessageLite : pb::GeneratedMessageLite<ImportMessageLite, ImportMessageLite.Builder> {
     private static readonly ImportMessageLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _importMessageLiteFieldNames = new string[] { "d" };
@@ -155,7 +155,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<ImportMessageLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 5 - 5
src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestImportProtoFile {
   
     #region Extension registration
@@ -57,7 +57,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   #region Enums
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum ImportEnum {
     IMPORT_FOO = 7,
     IMPORT_BAR = 8,
@@ -69,7 +69,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ImportMessage : pb::GeneratedMessage<ImportMessage, ImportMessage.Builder> {
     private static readonly ImportMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _importMessageFieldNames = new string[] { "d" };
@@ -174,7 +174,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<ImportMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 4 - 4
src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestLiteImportNonLiteProtoFile {
   
     #region Extension registration
@@ -30,7 +30,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestLiteImportsNonlite : pb::GeneratedMessageLite<TestLiteImportsNonlite, TestLiteImportsNonlite.Builder> {
     private static readonly TestLiteImportsNonlite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testLiteImportsNonliteFieldNames = new string[] { "message" };
@@ -144,7 +144,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<TestLiteImportsNonlite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 33 - 33
src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestLiteProtoFile {
   
     #region Extension registration
@@ -1214,7 +1214,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   #region Enums
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum ForeignEnumLite {
     FOREIGN_LITE_FOO = 4,
     FOREIGN_LITE_BAR = 5,
@@ -1226,7 +1226,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestAllTypesLite : pb::GeneratedMessageLite<TestAllTypesLite, TestAllTypesLite.Builder> {
     private static readonly TestAllTypesLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testAllTypesLiteFieldNames = new string[] { "default_bool", "default_bytes", "default_cord", "default_double", "default_fixed32", "default_fixed64", "default_float", "default_foreign_enum", "default_import_enum", "default_int32", "default_int64", "default_nested_enum", "default_sfixed32", "default_sfixed64", "default_sint32", "default_sint64", "default_string", "default_string_piece", "default_uint32", "default_uint64", "optional_bool", "optional_bytes", "optional_cord", "optional_double", "optional_fixed32", "optional_fixed64", "optional_float", "optional_foreign_enum", "optional_foreign_message", "optional_import_enum", "optional_import_message", "optional_int32", "optional_int64", "optional_nested_enum", "optional_nested_message", "optional_sfixed32", "optional_sfixed64", "optional_sint32", "optional_sint64", "optional_string", "optional_string_piece", "optional_uint32", "optional_uint64", "optionalgroup", "repeated_bool", "repeated_bytes", "repeated_cord", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_import_enum", "repeated_import_message", "repeated_int32", "repeated_int64", "repeated_nested_enum", "repeated_nested_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_string_piece", "repeated_uint32", "repeated_uint64", "repeatedgroup" };
@@ -1246,10 +1246,10 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum NestedEnum {
         FOO = 1,
         BAR = 2,
@@ -1258,7 +1258,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class NestedMessage : pb::GeneratedMessageLite<NestedMessage, NestedMessage.Builder> {
         private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _nestedMessageFieldNames = new string[] { "bb" };
@@ -1372,7 +1372,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilderLite<NestedMessage, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -1488,7 +1488,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class OptionalGroup : pb::GeneratedMessageLite<OptionalGroup, OptionalGroup.Builder> {
         private static readonly OptionalGroup defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _optionalGroupFieldNames = new string[] { "a" };
@@ -1602,7 +1602,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilderLite<OptionalGroup, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -1718,7 +1718,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class RepeatedGroup : pb::GeneratedMessageLite<RepeatedGroup, RepeatedGroup.Builder> {
         private static readonly RepeatedGroup defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _repeatedGroupFieldNames = new string[] { "a" };
@@ -1832,7 +1832,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilderLite<RepeatedGroup, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -3547,7 +3547,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<TestAllTypesLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -5789,7 +5789,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ForeignMessageLite : pb::GeneratedMessageLite<ForeignMessageLite, ForeignMessageLite.Builder> {
     private static readonly ForeignMessageLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _foreignMessageLiteFieldNames = new string[] { "c" };
@@ -5903,7 +5903,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<ForeignMessageLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -6019,7 +6019,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestPackedTypesLite : pb::GeneratedMessageLite<TestPackedTypesLite, TestPackedTypesLite.Builder> {
     private static readonly TestPackedTypesLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testPackedTypesLiteFieldNames = new string[] { "packed_bool", "packed_double", "packed_enum", "packed_fixed32", "packed_fixed64", "packed_float", "packed_int32", "packed_int64", "packed_sfixed32", "packed_sfixed64", "packed_sint32", "packed_sint64", "packed_uint32", "packed_uint64" };
@@ -6571,7 +6571,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<TestPackedTypesLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -7173,7 +7173,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestUnpackedTypesLite : pb::GeneratedMessageLite<TestUnpackedTypesLite, TestUnpackedTypesLite.Builder> {
     private static readonly TestUnpackedTypesLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testUnpackedTypesLiteFieldNames = new string[] { "unpacked_bool", "unpacked_double", "unpacked_enum", "unpacked_fixed32", "unpacked_fixed64", "unpacked_float", "unpacked_int32", "unpacked_int64", "unpacked_sfixed32", "unpacked_sfixed64", "unpacked_sint32", "unpacked_sint64", "unpacked_uint32", "unpacked_uint64" };
@@ -7670,7 +7670,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<TestUnpackedTypesLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -8272,7 +8272,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestAllExtensionsLite : pb::ExtendableMessageLite<TestAllExtensionsLite, TestAllExtensionsLite.Builder> {
     private static readonly TestAllExtensionsLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testAllExtensionsLiteFieldNames = new string[] {  };
@@ -8374,7 +8374,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilderLite<TestAllExtensionsLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -8466,7 +8466,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class OptionalGroup_extension_lite : pb::GeneratedMessageLite<OptionalGroup_extension_lite, OptionalGroup_extension_lite.Builder> {
     private static readonly OptionalGroup_extension_lite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _optionalGroupExtensionLiteFieldNames = new string[] { "a" };
@@ -8580,7 +8580,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<OptionalGroup_extension_lite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -8696,7 +8696,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class RepeatedGroup_extension_lite : pb::GeneratedMessageLite<RepeatedGroup_extension_lite, RepeatedGroup_extension_lite.Builder> {
     private static readonly RepeatedGroup_extension_lite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _repeatedGroupExtensionLiteFieldNames = new string[] { "a" };
@@ -8810,7 +8810,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<RepeatedGroup_extension_lite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -8926,7 +8926,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestPackedExtensionsLite : pb::ExtendableMessageLite<TestPackedExtensionsLite, TestPackedExtensionsLite.Builder> {
     private static readonly TestPackedExtensionsLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testPackedExtensionsLiteFieldNames = new string[] {  };
@@ -9028,7 +9028,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilderLite<TestPackedExtensionsLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9120,7 +9120,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestUnpackedExtensionsLite : pb::ExtendableMessageLite<TestUnpackedExtensionsLite, TestUnpackedExtensionsLite.Builder> {
     private static readonly TestUnpackedExtensionsLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testUnpackedExtensionsLiteFieldNames = new string[] {  };
@@ -9222,7 +9222,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilderLite<TestUnpackedExtensionsLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9314,7 +9314,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestNestedExtensionLite : pb::GeneratedMessageLite<TestNestedExtensionLite, TestNestedExtensionLite.Builder> {
     private static readonly TestNestedExtensionLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testNestedExtensionLiteFieldNames = new string[] {  };
@@ -9411,7 +9411,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<TestNestedExtensionLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9502,7 +9502,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestDeprecatedLite : pb::GeneratedMessageLite<TestDeprecatedLite, TestDeprecatedLite.Builder> {
     private static readonly TestDeprecatedLite defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testDeprecatedLiteFieldNames = new string[] { "deprecated_field" };
@@ -9616,7 +9616,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilderLite<TestDeprecatedLite, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }

+ 93 - 93
src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs

@@ -1,4 +1,4 @@
-// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
+// Generated by ProtoGen, Version=2.3.0.369, Culture=neutral, PublicKeyToken=55f7125234beb589.  DO NOT EDIT!
 #pragma warning disable 1591
 #region Designer generated code
 
@@ -10,7 +10,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public static partial class UnitTestProtoFile {
   
     #region Extension registration
@@ -1086,7 +1086,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   #region Enums
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum ForeignEnum {
     FOREIGN_FOO = 4,
     FOREIGN_BAR = 5,
@@ -1094,7 +1094,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum TestEnumWithDupValue {
     FOO1 = 1,
     BAR1 = 2,
@@ -1104,7 +1104,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   }
   
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public enum TestSparseEnum {
     SPARSE_A = 123,
     SPARSE_B = 62374,
@@ -1120,7 +1120,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   #region Messages
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestAllTypes : pb::GeneratedMessage<TestAllTypes, TestAllTypes.Builder> {
     private static readonly TestAllTypes defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testAllTypesFieldNames = new string[] { "default_bool", "default_bytes", "default_cord", "default_double", "default_fixed32", "default_fixed64", "default_float", "default_foreign_enum", "default_import_enum", "default_int32", "default_int64", "default_nested_enum", "default_sfixed32", "default_sfixed64", "default_sint32", "default_sint64", "default_string", "default_string_piece", "default_uint32", "default_uint64", "optional_bool", "optional_bytes", "optional_cord", "optional_double", "optional_fixed32", "optional_fixed64", "optional_float", "optional_foreign_enum", "optional_foreign_message", "optional_import_enum", "optional_import_message", "optional_int32", "optional_int64", "optional_nested_enum", "optional_nested_message", "optional_sfixed32", "optional_sfixed64", "optional_sint32", "optional_sint64", "optional_string", "optional_string_piece", "optional_uint32", "optional_uint64", "optionalgroup", "repeated_bool", "repeated_bytes", "repeated_cord", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_import_enum", "repeated_import_message", "repeated_int32", "repeated_int64", "repeated_nested_enum", "repeated_nested_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_string_piece", "repeated_uint32", "repeated_uint64", "repeatedgroup" };
@@ -1148,10 +1148,10 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum NestedEnum {
         FOO = 1,
         BAR = 2,
@@ -1160,7 +1160,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
         private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _nestedMessageFieldNames = new string[] { "bb" };
@@ -1265,7 +1265,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -1399,7 +1399,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class OptionalGroup : pb::GeneratedMessage<OptionalGroup, OptionalGroup.Builder> {
         private static readonly OptionalGroup defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _optionalGroupFieldNames = new string[] { "a" };
@@ -1504,7 +1504,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -1638,7 +1638,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class RepeatedGroup : pb::GeneratedMessage<RepeatedGroup, RepeatedGroup.Builder> {
         private static readonly RepeatedGroup defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _repeatedGroupFieldNames = new string[] { "a" };
@@ -1743,7 +1743,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -3186,7 +3186,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestAllTypes, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -5494,7 +5494,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestDeprecatedFields : pb::GeneratedMessage<TestDeprecatedFields, TestDeprecatedFields.Builder> {
     private static readonly TestDeprecatedFields defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testDeprecatedFieldsFieldNames = new string[] { "deprecated_int32" };
@@ -5599,7 +5599,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestDeprecatedFields, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -5733,7 +5733,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class ForeignMessage : pb::GeneratedMessage<ForeignMessage, ForeignMessage.Builder> {
     private static readonly ForeignMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _foreignMessageFieldNames = new string[] { "c" };
@@ -5838,7 +5838,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<ForeignMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -5972,7 +5972,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestAllExtensions : pb::ExtendableMessage<TestAllExtensions, TestAllExtensions.Builder> {
     private static readonly TestAllExtensions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testAllExtensionsFieldNames = new string[] {  };
@@ -6065,7 +6065,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestAllExtensions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -6175,7 +6175,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class OptionalGroup_extension : pb::GeneratedMessage<OptionalGroup_extension, OptionalGroup_extension.Builder> {
     private static readonly OptionalGroup_extension defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _optionalGroupExtensionFieldNames = new string[] { "a" };
@@ -6280,7 +6280,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup_extension, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -6414,7 +6414,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class RepeatedGroup_extension : pb::GeneratedMessage<RepeatedGroup_extension, RepeatedGroup_extension.Builder> {
     private static readonly RepeatedGroup_extension defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _repeatedGroupExtensionFieldNames = new string[] { "a" };
@@ -6519,7 +6519,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup_extension, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -6653,7 +6653,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestNestedExtension : pb::GeneratedMessage<TestNestedExtension, TestNestedExtension.Builder> {
     private static readonly TestNestedExtension defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testNestedExtensionFieldNames = new string[] {  };
@@ -6744,7 +6744,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestNestedExtension, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -6853,7 +6853,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestRequired : pb::GeneratedMessage<TestRequired, TestRequired.Builder> {
     private static readonly TestRequired defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testRequiredFieldNames = new string[] { "a", "b", "c", "dummy10", "dummy11", "dummy12", "dummy13", "dummy14", "dummy15", "dummy16", "dummy17", "dummy18", "dummy19", "dummy2", "dummy20", "dummy21", "dummy22", "dummy23", "dummy24", "dummy25", "dummy26", "dummy27", "dummy28", "dummy29", "dummy30", "dummy31", "dummy32", "dummy4", "dummy5", "dummy6", "dummy7", "dummy8", "dummy9" };
@@ -7477,7 +7477,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestRequired, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -8411,7 +8411,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestRequiredForeign : pb::GeneratedMessage<TestRequiredForeign, TestRequiredForeign.Builder> {
     private static readonly TestRequiredForeign defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testRequiredForeignFieldNames = new string[] { "dummy", "optional_message", "repeated_message" };
@@ -8556,7 +8556,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestRequiredForeign, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -8784,7 +8784,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestForeignNested : pb::GeneratedMessage<TestForeignNested, TestForeignNested.Builder> {
     private static readonly TestForeignNested defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testForeignNestedFieldNames = new string[] { "foreign_nested" };
@@ -8889,7 +8889,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestForeignNested, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9046,7 +9046,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestEmptyMessage : pb::GeneratedMessage<TestEmptyMessage, TestEmptyMessage.Builder> {
     private static readonly TestEmptyMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testEmptyMessageFieldNames = new string[] {  };
@@ -9135,7 +9135,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestEmptyMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9244,7 +9244,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestEmptyMessageWithExtensions : pb::ExtendableMessage<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder> {
     private static readonly TestEmptyMessageWithExtensions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testEmptyMessageWithExtensionsFieldNames = new string[] {  };
@@ -9337,7 +9337,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestEmptyMessageWithExtensions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9447,7 +9447,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMultipleExtensionRanges : pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> {
     private static readonly TestMultipleExtensionRanges defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testMultipleExtensionRangesFieldNames = new string[] {  };
@@ -9542,7 +9542,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestMultipleExtensionRanges, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9652,7 +9652,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestReallyLargeTagNumber : pb::GeneratedMessage<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> {
     private static readonly TestReallyLargeTagNumber defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testReallyLargeTagNumberFieldNames = new string[] { "a", "bb" };
@@ -9773,7 +9773,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestReallyLargeTagNumber, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -9932,7 +9932,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestRecursiveMessage : pb::GeneratedMessage<TestRecursiveMessage, TestRecursiveMessage.Builder> {
     private static readonly TestRecursiveMessage defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testRecursiveMessageFieldNames = new string[] { "a", "i" };
@@ -10053,7 +10053,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestRecursiveMessage, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -10235,7 +10235,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMutualRecursionA : pb::GeneratedMessage<TestMutualRecursionA, TestMutualRecursionA.Builder> {
     private static readonly TestMutualRecursionA defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testMutualRecursionAFieldNames = new string[] { "bb" };
@@ -10340,7 +10340,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestMutualRecursionA, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -10497,7 +10497,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestMutualRecursionB : pb::GeneratedMessage<TestMutualRecursionB, TestMutualRecursionB.Builder> {
     private static readonly TestMutualRecursionB defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testMutualRecursionBFieldNames = new string[] { "a", "optional_int32" };
@@ -10618,7 +10618,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestMutualRecursionB, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -10800,7 +10800,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestDupFieldNumber : pb::GeneratedMessage<TestDupFieldNumber, TestDupFieldNumber.Builder> {
     private static readonly TestDupFieldNumber defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testDupFieldNumberFieldNames = new string[] { "a", "bar", "foo" };
@@ -10828,11 +10828,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class Foo : pb::GeneratedMessage<Foo, Foo.Builder> {
         private static readonly Foo defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _fooFieldNames = new string[] { "a" };
@@ -10937,7 +10937,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<Foo, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -11071,7 +11071,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class Bar : pb::GeneratedMessage<Bar, Bar.Builder> {
         private static readonly Bar defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _barFieldNames = new string[] { "a" };
@@ -11176,7 +11176,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<Bar, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -11423,7 +11423,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestDupFieldNumber, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -11653,7 +11653,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestNestedMessageHasBits : pb::GeneratedMessage<TestNestedMessageHasBits, TestNestedMessageHasBits.Builder> {
     private static readonly TestNestedMessageHasBits defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testNestedMessageHasBitsFieldNames = new string[] { "optional_nested_message" };
@@ -11681,11 +11681,11 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
         private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _nestedMessageFieldNames = new string[] { "nestedmessage_repeated_foreignmessage", "nestedmessage_repeated_int32" };
@@ -11815,7 +11815,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -12086,7 +12086,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestNestedMessageHasBits, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -12243,7 +12243,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestCamelCaseFieldNames : pb::GeneratedMessage<TestCamelCaseFieldNames, TestCamelCaseFieldNames.Builder> {
     private static readonly TestCamelCaseFieldNames defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testCamelCaseFieldNamesFieldNames = new string[] { "CordField", "EnumField", "MessageField", "PrimitiveField", "RepeatedCordField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedStringPieceField", "StringField", "StringPieceField" };
@@ -12563,7 +12563,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestCamelCaseFieldNames, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -13089,7 +13089,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestFieldOrderings : pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder> {
     private static readonly TestFieldOrderings defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testFieldOrderingsFieldNames = new string[] { "my_float", "my_int", "my_string" };
@@ -13231,7 +13231,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestFieldOrderings, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -13417,7 +13417,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestExtremeDefaultValues : pb::GeneratedMessage<TestExtremeDefaultValues, TestExtremeDefaultValues.Builder> {
     private static readonly TestExtremeDefaultValues defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testExtremeDefaultValuesFieldNames = new string[] { "escaped_bytes", "inf_double", "inf_float", "large_float", "large_uint32", "large_uint64", "nan_double", "nan_float", "neg_inf_double", "neg_inf_float", "negative_float", "negative_one_float", "one_float", "small_float", "small_int32", "small_int64", "small_negative_float", "utf8_string", "zero_float" };
@@ -13812,7 +13812,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestExtremeDefaultValues, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -14402,7 +14402,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class OneString : pb::GeneratedMessage<OneString, OneString.Builder> {
     private static readonly OneString defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _oneStringFieldNames = new string[] { "data" };
@@ -14507,7 +14507,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<OneString, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -14642,7 +14642,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class OneBytes : pb::GeneratedMessage<OneBytes, OneBytes.Builder> {
     private static readonly OneBytes defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _oneBytesFieldNames = new string[] { "data" };
@@ -14747,7 +14747,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<OneBytes, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -14882,7 +14882,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestPackedTypes : pb::GeneratedMessage<TestPackedTypes, TestPackedTypes.Builder> {
     private static readonly TestPackedTypes defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testPackedTypesFieldNames = new string[] { "packed_bool", "packed_double", "packed_enum", "packed_fixed32", "packed_fixed64", "packed_float", "packed_int32", "packed_int64", "packed_sfixed32", "packed_sfixed64", "packed_sint32", "packed_sint64", "packed_uint32", "packed_uint64" };
@@ -15344,7 +15344,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestPackedTypes, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -15972,7 +15972,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestUnpackedTypes : pb::GeneratedMessage<TestUnpackedTypes, TestUnpackedTypes.Builder> {
     private static readonly TestUnpackedTypes defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testUnpackedTypesFieldNames = new string[] { "unpacked_bool", "unpacked_double", "unpacked_enum", "unpacked_fixed32", "unpacked_fixed64", "unpacked_float", "unpacked_int32", "unpacked_int64", "unpacked_sfixed32", "unpacked_sfixed64", "unpacked_sint32", "unpacked_sint64", "unpacked_uint32", "unpacked_uint64" };
@@ -16379,7 +16379,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestUnpackedTypes, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -17007,7 +17007,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestPackedExtensions : pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder> {
     private static readonly TestPackedExtensions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testPackedExtensionsFieldNames = new string[] {  };
@@ -17100,7 +17100,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestPackedExtensions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -17210,7 +17210,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestUnpackedExtensions : pb::ExtendableMessage<TestUnpackedExtensions, TestUnpackedExtensions.Builder> {
     private static readonly TestUnpackedExtensions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testUnpackedExtensionsFieldNames = new string[] {  };
@@ -17303,7 +17303,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::ExtendableBuilder<TestUnpackedExtensions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -17413,7 +17413,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestDynamicExtensions : pb::GeneratedMessage<TestDynamicExtensions, TestDynamicExtensions.Builder> {
     private static readonly TestDynamicExtensions defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testDynamicExtensionsFieldNames = new string[] { "dynamic_enum_extension", "dynamic_message_extension", "enum_extension", "message_extension", "packed_extension", "repeated_extension", "scalar_extension" };
@@ -17441,10 +17441,10 @@ namespace Google.ProtocolBuffers.TestProtos {
     #region Nested types
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public static class Types {
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public enum DynamicEnumType {
         DYNAMIC_FOO = 2200,
         DYNAMIC_BAR = 2201,
@@ -17453,7 +17453,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
       public sealed partial class DynamicMessageType : pb::GeneratedMessage<DynamicMessageType, DynamicMessageType.Builder> {
         private static readonly DynamicMessageType defaultInstance = new Builder().BuildPartial();
         private static readonly string[] _dynamicMessageTypeFieldNames = new string[] { "dynamic_field" };
@@ -17558,7 +17558,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
         public sealed partial class Builder : pb::GeneratedBuilder<DynamicMessageType, Builder> {
           protected override Builder ThisBuilder {
             get { return this; }
@@ -17888,7 +17888,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestDynamicExtensions, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -18257,7 +18257,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::GeneratedMessage<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> {
     private static readonly TestRepeatedScalarDifferentTagSizes defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _testRepeatedScalarDifferentTagSizesFieldNames = new string[] { "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_int32", "repeated_int64", "repeated_uint64" };
@@ -18484,7 +18484,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<TestRepeatedScalarDifferentTagSizes, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -18818,7 +18818,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class FooRequest : pb::GeneratedMessage<FooRequest, FooRequest.Builder> {
     private static readonly FooRequest defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _fooRequestFieldNames = new string[] {  };
@@ -18907,7 +18907,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<FooRequest, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -19016,7 +19016,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class FooResponse : pb::GeneratedMessage<FooResponse, FooResponse.Builder> {
     private static readonly FooResponse defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _fooResponseFieldNames = new string[] {  };
@@ -19105,7 +19105,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<FooResponse, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -19214,7 +19214,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class BarRequest : pb::GeneratedMessage<BarRequest, BarRequest.Builder> {
     private static readonly BarRequest defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _barRequestFieldNames = new string[] {  };
@@ -19303,7 +19303,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<BarRequest, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }
@@ -19412,7 +19412,7 @@ namespace Google.ProtocolBuffers.TestProtos {
   
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
   [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
   public sealed partial class BarResponse : pb::GeneratedMessage<BarResponse, BarResponse.Builder> {
     private static readonly BarResponse defaultInstance = new Builder().BuildPartial();
     private static readonly string[] _barResponseFieldNames = new string[] {  };
@@ -19501,7 +19501,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.369")]
     public sealed partial class Builder : pb::GeneratedBuilder<BarResponse, Builder> {
       protected override Builder ThisBuilder {
         get { return this; }