diff --git a/ProtocolBuffers.build b/ProtocolBuffers.build
index 288de898..14f59c97 100644
--- a/ProtocolBuffers.build
+++ b/ProtocolBuffers.build
@@ -114,6 +114,7 @@
+
@@ -140,6 +141,7 @@
+
diff --git a/protos/google/protobuf/descriptor.proto b/protos/google/protobuf/descriptor.proto
index e0e6f7f2..3b858d85 100644
--- a/protos/google/protobuf/descriptor.proto
+++ b/protos/google/protobuf/descriptor.proto
@@ -250,7 +250,7 @@ message FileOptions {
SPEED = 1; // Generate complete code for parsing, serialization, etc.
CODE_SIZE = 2; // Use ReflectionOps to implement these methods.
}
- optional OptimizeMode optimize_for = 9 [default=CODE_SIZE];
+ optional OptimizeMode optimize_for = 9 [default=SPEED];
@@ -306,6 +306,12 @@ message FieldOptions {
// a single length-delimited blob.
optional bool packed = 2;
+ // Is this field deprecated?
+ // Depending on the target platform, this can emit Deprecated annotations
+ // for accessors, or it will be completely ignored; in the very least, this
+ // is a formalization for deprecating fields.
+ optional bool deprecated = 3 [default=false];
+
// EXPERIMENTAL. DO NOT USE.
// For "map" fields, the name of the field in the enclosed type that
// is the key for this map. For example, suppose we have:
diff --git a/protos/google/protobuf/unittest_csharp_options.proto b/protos/google/protobuf/unittest_csharp_options.proto
new file mode 100644
index 00000000..37693292
--- /dev/null
+++ b/protos/google/protobuf/unittest_csharp_options.proto
@@ -0,0 +1,52 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: jonskeet@google.com (Jon Skeet)
+//
+// A proto file for unit testing the custom C# options
+
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestCSharpOptionsProtoFile";
+//option (google.protobuf.csharp_file_options).nest_classes = true;
+
+package protobuf_unittest;
+
+message OptionsMessage {
+
+ // Will be left as Normal
+ optional string normal = 1;
+
+ // Will be converted to OptionsMessage_
+ optional string options_message = 2;
+
+ // Will be converted to CustomName
+ optional string customized = 3 [(google.protobuf.csharp_field_options).property_name = "CustomName"];
+}
diff --git a/src/AddressBook/AddressBookProtos.cs b/src/AddressBook/AddressBookProtos.cs
index 0f5d743d..8caf0f64 100644
--- a/src/AddressBook/AddressBookProtos.cs
+++ b/src/AddressBook/AddressBookProtos.cs
@@ -8,44 +8,62 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
public static partial class AddressBookProtos {
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_tutorial_Person__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_tutorial_Person__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_tutorial_Person_PhoneNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_tutorial_AddressBook__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_tutorial_AddressBook__FieldAccessorTable;
+ #endregion
#region Descriptor
public static pbd::FileDescriptor Descriptor {
get { return descriptor; }
}
- private static readonly pbd::FileDescriptor descriptor = pbd::FileDescriptor.InternalBuildGeneratedFileFrom(
- global::System.Convert.FromBase64String(
- "Chp0dXRvcmlhbC9hZGRyZXNzYm9vay5wcm90bxIIdHV0b3JpYWwaJGdvb2ds" +
- "ZS9wcm90b2J1Zi9jc2hhcnBfb3B0aW9ucy5wcm90byLaAQoGUGVyc29uEgwK" +
- "BG5hbWUYASACKAkSCgoCaWQYAiACKAUSDQoFZW1haWwYAyABKAkSKwoFcGhv" +
- "bmUYBCADKAsyHC50dXRvcmlhbC5QZXJzb24uUGhvbmVOdW1iZXIaTQoLUGhv" +
- "bmVOdW1iZXISDgoGbnVtYmVyGAEgAigJEi4KBHR5cGUYAiABKA4yGi50dXRv" +
- "cmlhbC5QZXJzb24uUGhvbmVUeXBlOgRIT01FIisKCVBob25lVHlwZRIKCgZN" +
- "T0JJTEUQABIICgRIT01FEAESCAoEV09SSxACIi8KC0FkZHJlc3NCb29rEiAK" +
- "BnBlcnNvbhgBIAMoCzIQLnR1dG9yaWFsLlBlcnNvbkJFSAHCPkAKK0dvb2ds" +
- "ZS5Qcm90b2NvbEJ1ZmZlcnMuRXhhbXBsZXMuQWRkcmVzc0Jvb2sSEUFkZHJl" +
- "c3NCb29rUHJvdG9z"),
- new pbd::FileDescriptor[] {
+ private static pbd::FileDescriptor descriptor;
+
+ static AddressBookProtos() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "Chp0dXRvcmlhbC9hZGRyZXNzYm9vay5wcm90bxIIdHV0b3JpYWwaJGdvb2ds" +
+ "ZS9wcm90b2J1Zi9jc2hhcnBfb3B0aW9ucy5wcm90byLaAQoGUGVyc29uEgwK" +
+ "BG5hbWUYASACKAkSCgoCaWQYAiACKAUSDQoFZW1haWwYAyABKAkSKwoFcGhv" +
+ "bmUYBCADKAsyHC50dXRvcmlhbC5QZXJzb24uUGhvbmVOdW1iZXIaTQoLUGhv" +
+ "bmVOdW1iZXISDgoGbnVtYmVyGAEgAigJEi4KBHR5cGUYAiABKA4yGi50dXRv" +
+ "cmlhbC5QZXJzb24uUGhvbmVUeXBlOgRIT01FIisKCVBob25lVHlwZRIKCgZN" +
+ "T0JJTEUQABIICgRIT01FEAESCAoEV09SSxACIi8KC0FkZHJlc3NCb29rEiAK" +
+ "BnBlcnNvbhgBIAMoCzIQLnR1dG9yaWFsLlBlcnNvbkJFSAHCPkAKK0dvb2ds" +
+ "ZS5Qcm90b2NvbEJ1ZmZlcnMuRXhhbXBsZXMuQWRkcmVzc0Jvb2sSEUFkZHJl" +
+ "c3NCb29rUHJvdG9z");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_tutorial_Person__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_tutorial_Person__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_tutorial_Person__Descriptor,
+ new string[] { "Name", "Id", "Email", "Phone", });
+ internal__static_tutorial_Person_PhoneNumber__Descriptor = internal__static_tutorial_Person__Descriptor.NestedTypes[0];
+ internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_tutorial_Person_PhoneNumber__Descriptor,
+ new string[] { "Number", "Type", });
+ internal__static_tutorial_AddressBook__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_tutorial_AddressBook__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_tutorial_AddressBook__Descriptor,
+ new string[] { "Person", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
- });
+ }, assigner);
+ }
#endregion
- #region Static variables
- internal static readonly pbd::MessageDescriptor internal__static_tutorial_Person__Descriptor
- = Descriptor.MessageTypes[0];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_tutorial_Person__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_tutorial_Person__Descriptor,
- new string[] { "Name", "Id", "Email", "Phone", });
- internal static readonly pbd::MessageDescriptor internal__static_tutorial_Person_PhoneNumber__Descriptor
- = internal__static_tutorial_Person__Descriptor.NestedTypes[0];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_tutorial_Person_PhoneNumber__Descriptor,
- new string[] { "Number", "Type", });
- internal static readonly pbd::MessageDescriptor internal__static_tutorial_AddressBook__Descriptor
- = Descriptor.MessageTypes[1];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_tutorial_AddressBook__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_tutorial_AddressBook__Descriptor,
- new string[] { "Person", });
- #endregion
}
#region Messages
public sealed partial class Person : pb::GeneratedMessage {
@@ -338,6 +356,9 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
return this;
}
}
+ static PhoneNumber() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.Descriptor;
+ }
}
}
@@ -685,6 +706,9 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
return this;
}
}
+ static Person() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.Descriptor;
+ }
}
public sealed partial class AddressBook : pb::GeneratedMessage {
@@ -924,6 +948,9 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
return this;
}
}
+ static AddressBook() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.Descriptor;
+ }
}
#endregion
diff --git a/src/ProtoGen/EnumGenerator.cs b/src/ProtoGen/EnumGenerator.cs
index aaed53c5..65eeb7d3 100644
--- a/src/ProtoGen/EnumGenerator.cs
+++ b/src/ProtoGen/EnumGenerator.cs
@@ -5,6 +5,7 @@ namespace Google.ProtocolBuffers.ProtoGen {
internal EnumGenerator(EnumDescriptor descriptor) : base(descriptor) {
}
+ // TODO(jonskeet): Write out enum descriptors? Can be retrieved from file...
public void Generate(TextGenerator writer) {
writer.WriteLine("{0} enum {1} {{", ClassAccessLevel, Descriptor.Name);
writer.Indent();
diff --git a/src/ProtoGen/ExtensionGenerator.cs b/src/ProtoGen/ExtensionGenerator.cs
index c3412fe9..6b44ed73 100644
--- a/src/ProtoGen/ExtensionGenerator.cs
+++ b/src/ProtoGen/ExtensionGenerator.cs
@@ -1,17 +1,18 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
using Google.ProtocolBuffers.Descriptors;
namespace Google.ProtocolBuffers.ProtoGen {
internal class ExtensionGenerator : SourceGeneratorBase, ISourceGenerator {
+
+ private readonly string scope;
+ private readonly string type;
+ private readonly string name;
+
internal ExtensionGenerator(FieldDescriptor descriptor) : base(descriptor) {
- }
-
- public void Generate(TextGenerator writer) {
- string name = Descriptor.CSharpOptions.PropertyName;
-
- string type;
+ if (Descriptor.ExtensionScope != null) {
+ scope = GetClassName(Descriptor.ExtensionScope);
+ } else {
+ scope = DescriptorUtil.GetFullUmbrellaClassName(Descriptor.File);
+ }
switch (Descriptor.MappedType) {
case MappedType.Message:
type = GetClassName(Descriptor.MessageType);
@@ -23,16 +24,28 @@ namespace Google.ProtocolBuffers.ProtoGen {
type = DescriptorUtil.GetMappedTypeName(Descriptor.MappedType);
break;
}
+ name = Descriptor.CSharpOptions.PropertyName;
+ }
+ public void Generate(TextGenerator writer) {
writer.WriteLine ("public const int {0} = {1};", GetFieldConstantName(Descriptor), Descriptor.FieldNumber);
if (Descriptor.IsRepeated) {
- writer.WriteLine("{0} static readonly", ClassAccessLevel);
- writer.WriteLine(" pb::GeneratedExtensionBase> {1} =", type, name);
- writer.WriteLine(" pb::GeneratedRepeatExtension<{0}>.CreateInstance(Descriptor.Extensions[{1}]);", type, Descriptor.Index);
+ writer.WriteLine("{0} static pb::GeneratedExtensionBase> {2};", ClassAccessLevel, type, name);
} else {
- writer.WriteLine("{0} static readonly pb::GeneratedExtensionBase<{1}> {2} =", ClassAccessLevel, type, name);
- writer.WriteLine(" pb::GeneratedSingleExtension<{0}>.CreateInstance(Descriptor.Extensions[{1}]);", type, Descriptor.Index);
+ writer.WriteLine("{0} static pb::GeneratedExtensionBase<{1}> {2};", ClassAccessLevel, type, name);
}
}
+
+ internal void GenerateStaticVariableInitializers(TextGenerator writer) {
+ if (Descriptor.IsRepeated) {
+ writer.WriteLine("{0}.{1} = pb::GeneratedRepeatExtension<{2}>.CreateInstance({0}.Descriptor.Extensions[{3}]);", scope, name, type, Descriptor.Index);
+ } else {
+ writer.WriteLine("{0}.{1} = pb::GeneratedSingleExtension<{2}>.CreateInstance({0}.Descriptor.Extensions[{3}]);", scope, name, type, Descriptor.Index);
+ }
+ }
+
+ internal void GenerateExtensionRegistrationCode(TextGenerator writer) {
+ writer.WriteLine("registry.Add({0}.{1});", scope, name);
+ }
}
}
diff --git a/src/ProtoGen/MessageGenerator.cs b/src/ProtoGen/MessageGenerator.cs
index 4b983003..53859231 100644
--- a/src/ProtoGen/MessageGenerator.cs
+++ b/src/ProtoGen/MessageGenerator.cs
@@ -39,25 +39,42 @@ namespace Google.ProtocolBuffers.ProtoGen {
// The descriptor for this type.
string access = Descriptor.File.CSharpOptions.NestClasses ? "private" : "internal";
- writer.WriteLine("{0} static readonly pbd::MessageDescriptor internal__{1}__Descriptor", access, identifier);
- if (Descriptor.ContainingType == null) {
- writer.WriteLine(" = Descriptor.MessageTypes[{0}];", Descriptor.Index);
- } else {
- writer.WriteLine(" = internal__{0}__Descriptor.NestedTypes[{1}];", GetUniqueFileScopeIdentifier(Descriptor.ContainingType), Descriptor.Index);
- }
- writer.WriteLine("{0} static pb::FieldAccess.FieldAccessorTable<{1}, {1}.Builder> internal__{2}__FieldAccessorTable",
+ writer.WriteLine("{0} static pbd::MessageDescriptor internal__{1}__Descriptor;", access, identifier);
+ writer.WriteLine("{0} static pb::FieldAccess.FieldAccessorTable<{1}, {1}.Builder> internal__{2}__FieldAccessorTable;",
access, FullClassName, identifier);
- writer.WriteLine(" = new pb::FieldAccess.FieldAccessorTable<{0}, {0}.Builder>(internal__{1}__Descriptor,",
- FullClassName, identifier);
+
+ // Generate static members for all nested types.
+ foreach (MessageDescriptor nestedMessage in Descriptor.NestedTypes) {
+ new MessageGenerator(nestedMessage).GenerateStaticVariables(writer);
+ }
+ }
+
+ internal void GenerateStaticVariableInitializers(TextGenerator writer) {
+ string identifier = GetUniqueFileScopeIdentifier(Descriptor);
+
+ writer.Write("internal__{0}__Descriptor = ", identifier);
+ if (Descriptor.ContainingType == null) {
+ writer.WriteLine("Descriptor.MessageTypes[{0}];", Descriptor.Index);
+ } else {
+ writer.WriteLine("internal__{0}__Descriptor.NestedTypes[{1}];", GetUniqueFileScopeIdentifier(Descriptor.ContainingType), Descriptor.Index);
+ }
+
+ writer.WriteLine("internal__{0}__FieldAccessorTable = ", identifier);
+ writer.WriteLine(" new pb::FieldAccess.FieldAccessorTable<{1}, {1}.Builder>(internal__{0}__Descriptor,",
+ identifier, FullClassName);
writer.Print(" new string[] { ");
foreach (FieldDescriptor field in Descriptor.Fields) {
writer.Write("\"{0}\", ", field.CSharpOptions.PropertyName);
}
writer.WriteLine("});");
- // Generate static members for all nested types.
+ // Generate static member initializers for all nested types.
foreach (MessageDescriptor nestedMessage in Descriptor.NestedTypes) {
- new MessageGenerator(nestedMessage).GenerateStaticVariables(writer);
+ new MessageGenerator(nestedMessage).GenerateStaticVariableInitializers(writer);
+ }
+
+ foreach (FieldDescriptor extension in Descriptor.Extensions) {
+ new ExtensionGenerator(extension).GenerateStaticVariableInitializers(writer);
}
}
@@ -119,6 +136,17 @@ namespace Google.ProtocolBuffers.ProtoGen {
GenerateParseFromMethods(writer);
GenerateBuilder(writer);
+
+ // Force the static initialization code for the file to run, since it may
+ // initialize static variables declared in this class.
+ writer.WriteLine("static {0}() {{", ClassName);
+ // Note that the variable is needed just so we can access the property
+ writer.WriteLine(" pbd::FileDescriptor descriptor = {0}.Descriptor;", DescriptorUtil.GetFullUmbrellaClassName(Descriptor));
+ writer.WriteLine("}");
+
+ writer.Outdent();
+ writer.WriteLine("}");
+ writer.WriteLine();
}
private void GenerateMessageSerializationMethods(TextGenerator writer) {
@@ -297,9 +325,6 @@ namespace Google.ProtocolBuffers.ProtoGen {
}
writer.Outdent();
writer.WriteLine("}");
- writer.Outdent();
- writer.WriteLine("}");
- writer.WriteLine();
}
private void GenerateCommonBuilderMethods(TextGenerator writer) {
@@ -472,5 +497,14 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.WriteLine("}");
writer.WriteLine();
}
+
+ internal void GenerateExtensionRegistrationCode(TextGenerator writer) {
+ foreach (FieldDescriptor extension in Descriptor.Extensions) {
+ new ExtensionGenerator(extension).GenerateExtensionRegistrationCode(writer);
+ }
+ foreach (MessageDescriptor nestedMessage in Descriptor.NestedTypes) {
+ new MessageGenerator(nestedMessage).GenerateExtensionRegistrationCode(writer);
+ }
+ }
}
}
diff --git a/src/ProtoGen/SourceFileGenerator.cs b/src/ProtoGen/SourceFileGenerator.cs
index 61321753..b5bd5efb 100644
--- a/src/ProtoGen/SourceFileGenerator.cs
+++ b/src/ProtoGen/SourceFileGenerator.cs
@@ -1,8 +1,4 @@
-using System;
-using System.Collections.Generic;
using System.IO;
-using System.Text;
-using Google.ProtocolBuffers.Descriptors;
namespace Google.ProtocolBuffers.ProtoGen {
///
diff --git a/src/ProtoGen/SourceGeneratorBase.cs b/src/ProtoGen/SourceGeneratorBase.cs
index dea9def2..1604f11c 100644
--- a/src/ProtoGen/SourceGeneratorBase.cs
+++ b/src/ProtoGen/SourceGeneratorBase.cs
@@ -31,7 +31,7 @@ namespace Google.ProtocolBuffers.ProtoGen {
}
internal static string GetFieldConstantName(FieldDescriptor field) {
- return NameHelpers.UnderscoresToPascalCase(GetFieldName(field)) + "FieldNumber";
+ return field.CSharpOptions.PropertyName + "FieldNumber";
}
private static string ToCSharpName(string name, FileDescriptor file) {
diff --git a/src/ProtoGen/UmbrellaClassGenerator.cs b/src/ProtoGen/UmbrellaClassGenerator.cs
index 938507b5..732b6f8d 100644
--- a/src/ProtoGen/UmbrellaClassGenerator.cs
+++ b/src/ProtoGen/UmbrellaClassGenerator.cs
@@ -1,4 +1,6 @@
using System;
+using System.Collections;
+using System.Collections.Generic;
using Google.ProtocolBuffers.DescriptorProtos;
using Google.ProtocolBuffers.Descriptors;
@@ -13,19 +15,49 @@ namespace Google.ProtocolBuffers.ProtoGen {
: base(descriptor) {
}
+ // Recursively searches the given message to see if it contains any extensions.
+ private static bool UsesExtensions(IMessage message) {
+ // We conservatively assume that unknown fields are extensions.
+ if (message.UnknownFields.FieldDictionary.Count > 0) {
+ return true;
+ }
+
+ foreach (KeyValuePair keyValue in message.AllFields) {
+ FieldDescriptor field = keyValue.Key;
+ if (field.IsExtension) {
+ return true;
+ }
+ if (field.MappedType == MappedType.Message) {
+ if (field.IsRepeated) {
+ foreach (IMessage subMessage in (IEnumerable)keyValue.Value) {
+ if (UsesExtensions(subMessage)) {
+ return true;
+ }
+ }
+ } else {
+ if (UsesExtensions((IMessage)keyValue.Value)) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
public string UmbrellaClassName {
get { throw new NotImplementedException(); }
}
public void Generate(TextGenerator writer) {
WriteIntroduction(writer);
- WriteDescriptor(writer);
+ WriteExtensionRegistration(writer);
WriteChildren(writer, "Extensions", Descriptor.Extensions);
writer.WriteLine("#region Static variables");
foreach (MessageDescriptor message in Descriptor.MessageTypes) {
new MessageGenerator(message).GenerateStaticVariables(writer);
}
writer.WriteLine("#endregion");
+ WriteDescriptor(writer);
// The class declaration either gets closed before or after the children are written.
if (!Descriptor.CSharpOptions.NestClasses) {
writer.Outdent();
@@ -60,14 +92,32 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.Indent();
}
+ private void WriteExtensionRegistration(TextGenerator writer) {
+ writer.WriteLine("#region Extension registration");
+ writer.WriteLine("public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {");
+ writer.Indent();
+ foreach (FieldDescriptor extension in Descriptor.Extensions) {
+ new ExtensionGenerator(extension).GenerateExtensionRegistrationCode(writer);
+ }
+ foreach (MessageDescriptor message in Descriptor.MessageTypes) {
+ new MessageGenerator(message).GenerateExtensionRegistrationCode(writer);
+ }
+ writer.Outdent();
+ writer.WriteLine("}");
+ writer.WriteLine("#endregion");
+ }
+
private void WriteDescriptor(TextGenerator writer) {
writer.WriteLine("#region Descriptor");
writer.WriteLine("public static pbd::FileDescriptor Descriptor {");
writer.WriteLine(" get { return descriptor; }");
writer.WriteLine("}");
- writer.WriteLine("private static readonly pbd::FileDescriptor descriptor = pbd::FileDescriptor.InternalBuildGeneratedFileFrom(");
- writer.WriteLine(" global::System.Convert.FromBase64String(");
+ writer.WriteLine("private static pbd::FileDescriptor descriptor;");
+ writer.WriteLine();
+ writer.WriteLine("static {0}() {{", Descriptor.CSharpOptions.UmbrellaClassname);
+ writer.Indent();
+ writer.WriteLine("byte[] descriptorData = global::System.Convert.FromBase64String(");
writer.Indent();
writer.Indent();
@@ -79,15 +129,44 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.WriteLine("\"{0}\" + ", base64.Substring(0, 60));
base64 = base64.Substring(60);
}
- writer.WriteLine("\"{0}\"),", base64);
-
- writer.WriteLine("new pbd::FileDescriptor[] {");
- foreach (FileDescriptor dependency in Descriptor.Dependencies) {
- writer.WriteLine(" {0}.Descriptor, ", DescriptorUtil.GetFullUmbrellaClassName(dependency));
+ writer.WriteLine("\"{0}\");", base64);
+ writer.Outdent();
+ writer.Outdent();
+ writer.WriteLine("pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {");
+ writer.Indent();
+ writer.WriteLine("descriptor = root;");
+ foreach (MessageDescriptor message in Descriptor.MessageTypes) {
+ new MessageGenerator(message).GenerateStaticVariableInitializers(writer);
+ }
+ foreach (FieldDescriptor extension in Descriptor.Extensions) {
+ new ExtensionGenerator(extension).GenerateStaticVariableInitializers(writer);
+ }
+
+ if (UsesExtensions(Descriptor.Proto)) {
+ // Must construct an ExtensionRegistry containing all possible extensions
+ // and return it.
+ writer.WriteLine("pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();");
+ writer.WriteLine("RegisterAllExtensions(registry);");
+ foreach (FileDescriptor dependency in Descriptor.Dependencies) {
+ writer.WriteLine("{0}.RegisterAllExtensions(registry);", DescriptorUtil.GetFullUmbrellaClassName(dependency));
+ }
+ writer.WriteLine("return registry;");
+ } else {
+ writer.WriteLine("return null;");
}
- writer.WriteLine("});");
writer.Outdent();
+ writer.WriteLine("};");
+
+ // -----------------------------------------------------------------
+ // Invoke internalBuildGeneratedFileFrom() to build the file.
+ writer.WriteLine("pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,");
+ writer.WriteLine(" new pbd::FileDescriptor[] {");
+ foreach (FileDescriptor dependency in Descriptor.Dependencies) {
+ writer.WriteLine(" {0}.Descriptor, ", DescriptorUtil.GetFullUmbrellaClassName(dependency));
+ }
+ writer.WriteLine(" }, assigner);");
writer.Outdent();
+ writer.WriteLine("}");
writer.WriteLine("#endregion");
writer.WriteLine();
}
diff --git a/src/ProtocolBuffers.Test/CodedInputStreamTest.cs b/src/ProtocolBuffers.Test/CodedInputStreamTest.cs
index 2ad8c45b..8944dbf0 100644
--- a/src/ProtocolBuffers.Test/CodedInputStreamTest.cs
+++ b/src/ProtocolBuffers.Test/CodedInputStreamTest.cs
@@ -397,7 +397,7 @@ namespace Google.ProtocolBuffers {
try {
input.ReadRawByte();
Assert.Fail("Should have thrown an exception!");
- } catch (InvalidProtocolBufferException e) {
+ } catch (InvalidProtocolBufferException) {
// Success.
}
@@ -407,7 +407,7 @@ namespace Google.ProtocolBuffers {
try {
input.ReadRawBytes(16); // Hits limit again.
Assert.Fail("Should have thrown an exception!");
- } catch (InvalidProtocolBufferException e) {
+ } catch (InvalidProtocolBufferException) {
// Success.
}
}
diff --git a/src/ProtocolBuffers.Test/Descriptors/MessageDescriptorTest.cs b/src/ProtocolBuffers.Test/Descriptors/MessageDescriptorTest.cs
new file mode 100644
index 00000000..5b8abebd
--- /dev/null
+++ b/src/ProtocolBuffers.Test/Descriptors/MessageDescriptorTest.cs
@@ -0,0 +1,31 @@
+using NUnit.Framework;
+using Google.ProtocolBuffers.TestProtos;
+
+namespace Google.ProtocolBuffers.Descriptors {
+
+ [TestFixture]
+ public class MessageDescriptorTest {
+ [Test]
+ public void FindPropertyWithDefaultName() {
+ Assert.AreSame(OptionsMessage.Descriptor.FindFieldByNumber(OptionsMessage.NormalFieldNumber),
+ OptionsMessage.Descriptor.FindFieldByPropertyName("Normal"));
+ }
+
+ [Test]
+ public void FindPropertyWithAutoModifiedName() {
+ Assert.AreSame(OptionsMessage.Descriptor.FindFieldByNumber(OptionsMessage.OptionsMessage_FieldNumber),
+ OptionsMessage.Descriptor.FindFieldByPropertyName("OptionsMessage_"));
+ }
+
+ [Test]
+ public void FindPropertyWithCustomizedName() {
+ Assert.AreSame(OptionsMessage.Descriptor.FindFieldByNumber(OptionsMessage.CustomNameFieldNumber),
+ OptionsMessage.Descriptor.FindFieldByPropertyName("CustomName"));
+ }
+
+ [Test]
+ public void FindPropertyWithInvalidName() {
+ Assert.IsNull(OptionsMessage.Descriptor.FindFieldByPropertyName("Bogus"));
+ }
+ }
+}
diff --git a/src/ProtocolBuffers.Test/DescriptorsTest.cs b/src/ProtocolBuffers.Test/DescriptorsTest.cs
index 3921a6ee..913a919e 100644
--- a/src/ProtocolBuffers.Test/DescriptorsTest.cs
+++ b/src/ProtocolBuffers.Test/DescriptorsTest.cs
@@ -286,5 +286,41 @@ namespace Google.ProtocolBuffers {
Assert.AreEqual(i, service.Methods[i].Index);
}
}
+
+ [Test]
+ public void CustomOptions() {
+ MessageDescriptor descriptor = TestMessageWithCustomOptions.Descriptor;
+ Assert.IsTrue(descriptor.Options.HasExtension(UnitTestCustomOptionsProtoFile.MessageOpt1));
+ Assert.AreEqual(-56, descriptor.Options.GetExtension(UnitTestCustomOptionsProtoFile.MessageOpt1));
+
+
+ FieldDescriptor field = descriptor.FindFieldByName("field1");
+ Assert.IsNotNull(field);
+
+ Assert.IsTrue(field.Options.HasExtension(UnitTestCustomOptionsProtoFile.FieldOpt1));
+ Assert.AreEqual(8765432109L, field.Options.GetExtension(UnitTestCustomOptionsProtoFile.FieldOpt1));
+
+ // TODO: Write out enum descriptors
+ /*
+ EnumDescriptor enumType = TestMessageWithCustomOptions.Types.
+ UnittestCustomOptions.TestMessageWithCustomOptions.AnEnum.getDescriptor();
+
+ Assert.IsTrue(
+ enumType.getOptions().hasExtension(UnittestCustomOptions.enumOpt1));
+ Assert.AreEqual(Integer.valueOf(-789),
+ enumType.getOptions().getExtension(UnittestCustomOptions.enumOpt1));
+ */
+
+ ServiceDescriptor service = TestServiceWithCustomOptions.Descriptor;
+
+ Assert.IsTrue(service.Options.HasExtension(UnitTestCustomOptionsProtoFile.ServiceOpt1));
+ Assert.AreEqual(-9876543210L, service.Options.GetExtension(UnitTestCustomOptionsProtoFile.ServiceOpt1));
+
+ MethodDescriptor method = service.FindMethodByName("Foo");
+ Assert.IsNotNull(method);
+
+ Assert.IsTrue(method.Options.HasExtension(UnitTestCustomOptionsProtoFile.MethodOpt1));
+ Assert.AreEqual(MethodOpt1.METHODOPT1_VAL2, method.Options.GetExtension(UnitTestCustomOptionsProtoFile.MethodOpt1));
+ }
}
}
diff --git a/src/ProtocolBuffers.Test/DynamicMessageTest.cs b/src/ProtocolBuffers.Test/DynamicMessageTest.cs
index 2f3fefa8..69e2e6b8 100644
--- a/src/ProtocolBuffers.Test/DynamicMessageTest.cs
+++ b/src/ProtocolBuffers.Test/DynamicMessageTest.cs
@@ -64,7 +64,7 @@ namespace Google.ProtocolBuffers {
try {
builder.Build();
Assert.Fail("Should have thrown exception.");
- } catch (InvalidOperationException e) {
+ } catch (InvalidOperationException) {
// Success.
}
}
diff --git a/src/ProtocolBuffers.Test/GeneratedMessageTest.cs b/src/ProtocolBuffers.Test/GeneratedMessageTest.cs
index 1980bbc1..69c5ac37 100644
--- a/src/ProtocolBuffers.Test/GeneratedMessageTest.cs
+++ b/src/ProtocolBuffers.Test/GeneratedMessageTest.cs
@@ -97,7 +97,7 @@ namespace Google.ProtocolBuffers {
try {
builder.Build();
Assert.Fail("Should have thrown exception.");
- } catch (InvalidOperationException e) {
+ } catch (InvalidOperationException) {
// Success.
}
}
diff --git a/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj b/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
index 2eb81e50..785ba893 100644
--- a/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
+++ b/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
@@ -53,6 +53,7 @@
+
@@ -63,6 +64,8 @@
+
+
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
new file mode 100644
index 00000000..8441c1d3
--- /dev/null
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
@@ -0,0 +1,246 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ public static partial class UnitTestCSharpOptionsProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OptionsMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_OptionsMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnitTestCSharpOptionsProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "Ci1nb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfY3NoYXJwX29wdGlvbnMucHJv" +
+ "dG8SEXByb3RvYnVmX3VuaXR0ZXN0GiRnb29nbGUvcHJvdG9idWYvY3NoYXJw" +
+ "X29wdGlvbnMucHJvdG8iXgoOT3B0aW9uc01lc3NhZ2USDgoGbm9ybWFsGAEg" +
+ "ASgJEhcKD29wdGlvbnNfbWVzc2FnZRgCIAEoCRIjCgpjdXN0b21pemVkGAMg" +
+ "ASgJQg/CPgwKCkN1c3RvbU5hbWVCRsI+QwohR29vZ2xlLlByb3RvY29sQnVm" +
+ "ZmVycy5UZXN0UHJvdG9zEh5Vbml0VGVzdENTaGFycE9wdGlvbnNQcm90b0Zp" +
+ "bGU=");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_OptionsMessage__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_OptionsMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_OptionsMessage__Descriptor,
+ new string[] { "Normal", "OptionsMessage_", "CustomName", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class OptionsMessage : pb::GeneratedMessage {
+ private static readonly OptionsMessage defaultInstance = new Builder().BuildPartial();
+ public static OptionsMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionsMessage DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override OptionsMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestCSharpOptionsProtoFile.internal__static_protobuf_unittest_OptionsMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestCSharpOptionsProtoFile.internal__static_protobuf_unittest_OptionsMessage__FieldAccessorTable; }
+ }
+
+ public const int NormalFieldNumber = 1;
+ private bool hasNormal;
+ private string normal_ = "";
+ public bool HasNormal {
+ get { return hasNormal; }
+ }
+ public string Normal {
+ get { return normal_; }
+ }
+
+ public const int OptionsMessage_FieldNumber = 2;
+ private bool hasOptionsMessage_;
+ private string optionsMessage_ = "";
+ public bool HasOptionsMessage_ {
+ get { return hasOptionsMessage_; }
+ }
+ public string OptionsMessage_ {
+ get { return optionsMessage_; }
+ }
+
+ public const int CustomNameFieldNumber = 3;
+ private bool hasCustomName;
+ private string customized_ = "";
+ public bool HasCustomName {
+ get { return hasCustomName; }
+ }
+ public string CustomName {
+ get { return customized_; }
+ }
+
+ public static OptionsMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionsMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionsMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionsMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionsMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionsMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionsMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionsMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionsMessage ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionsMessage ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionsMessage prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ OptionsMessage result = new OptionsMessage();
+
+ protected override OptionsMessage MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new OptionsMessage();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return OptionsMessage.Descriptor; }
+ }
+
+ public override OptionsMessage DefaultInstanceForType {
+ get { return OptionsMessage.DefaultInstance; }
+ }
+
+ public override OptionsMessage BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ OptionsMessage returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+
+ public bool HasNormal {
+ get { return result.HasNormal; }
+ }
+ public string Normal {
+ get { return result.Normal; }
+ set { SetNormal(value); }
+ }
+ public Builder SetNormal(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasNormal = true;
+ result.normal_ = value;
+ return this;
+ }
+ public Builder ClearNormal() {
+ result.hasNormal = false;
+ result.normal_ = "";
+ return this;
+ }
+
+ public bool HasOptionsMessage_ {
+ get { return result.HasOptionsMessage_; }
+ }
+ public string OptionsMessage_ {
+ get { return result.OptionsMessage_; }
+ set { SetOptionsMessage_(value); }
+ }
+ public Builder SetOptionsMessage_(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionsMessage_ = true;
+ result.optionsMessage_ = value;
+ return this;
+ }
+ public Builder ClearOptionsMessage_() {
+ result.hasOptionsMessage_ = false;
+ result.optionsMessage_ = "";
+ return this;
+ }
+
+ public bool HasCustomName {
+ get { return result.HasCustomName; }
+ }
+ public string CustomName {
+ get { return result.CustomName; }
+ set { SetCustomName(value); }
+ }
+ public Builder SetCustomName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasCustomName = true;
+ result.customized_ = value;
+ return this;
+ }
+ public Builder ClearCustomName() {
+ result.hasCustomName = false;
+ result.customized_ = "";
+ return this;
+ }
+ }
+ static OptionsMessage() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCSharpOptionsProtoFile.Descriptor;
+ }
+ }
+
+ #endregion
+
+}
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
index b198d4f3..5b4f10a3 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
@@ -8,298 +8,365 @@ namespace Google.ProtocolBuffers.TestProtos {
public static partial class UnitTestCustomOptionsProtoFile {
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FileOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.MessageOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FieldOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FieldOpt2);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.EnumOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ServiceOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.MethodOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.BoolOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Int32Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Int64Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Uint32Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Uint64Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sint32Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sint64Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Fixed32Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Fixed64Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sfixed32Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sfixed64Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FloatOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.DoubleOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.StringOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.BytesOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.EnumOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.MessageTypeOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Quux);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Corge);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Grault);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Garply);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt2);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt3);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt6);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.ComplexOpt4);
+ }
+ #endregion
+ #region Extensions
+ public const int FileOpt1FieldNumber = 7736974;
+ public static pb::GeneratedExtensionBase FileOpt1;
+ public const int MessageOpt1FieldNumber = 7739036;
+ public static pb::GeneratedExtensionBase MessageOpt1;
+ public const int FieldOpt1FieldNumber = 7740936;
+ public static pb::GeneratedExtensionBase FieldOpt1;
+ public const int FieldOpt2FieldNumber = 7753913;
+ public static pb::GeneratedExtensionBase FieldOpt2;
+ public const int EnumOpt1FieldNumber = 7753576;
+ public static pb::GeneratedExtensionBase EnumOpt1;
+ public const int ServiceOpt1FieldNumber = 7887650;
+ public static pb::GeneratedExtensionBase ServiceOpt1;
+ public const int MethodOpt1FieldNumber = 7890860;
+ public static pb::GeneratedExtensionBase MethodOpt1;
+ public const int BoolOptFieldNumber = 7706090;
+ public static pb::GeneratedExtensionBase BoolOpt;
+ public const int Int32OptFieldNumber = 7705709;
+ public static pb::GeneratedExtensionBase Int32Opt;
+ public const int Int64OptFieldNumber = 7705542;
+ public static pb::GeneratedExtensionBase Int64Opt;
+ public const int Uint32OptFieldNumber = 7704880;
+ public static pb::GeneratedExtensionBase Uint32Opt;
+ public const int Uint64OptFieldNumber = 7702367;
+ public static pb::GeneratedExtensionBase Uint64Opt;
+ public const int Sint32OptFieldNumber = 7701568;
+ public static pb::GeneratedExtensionBase Sint32Opt;
+ public const int Sint64OptFieldNumber = 7700863;
+ public static pb::GeneratedExtensionBase Sint64Opt;
+ public const int Fixed32OptFieldNumber = 7700307;
+ public static pb::GeneratedExtensionBase Fixed32Opt;
+ public const int Fixed64OptFieldNumber = 7700194;
+ public static pb::GeneratedExtensionBase Fixed64Opt;
+ public const int Sfixed32OptFieldNumber = 7698645;
+ public static pb::GeneratedExtensionBase Sfixed32Opt;
+ public const int Sfixed64OptFieldNumber = 7685475;
+ public static pb::GeneratedExtensionBase Sfixed64Opt;
+ public const int FloatOptFieldNumber = 7675390;
+ public static pb::GeneratedExtensionBase FloatOpt;
+ public const int DoubleOptFieldNumber = 7673293;
+ public static pb::GeneratedExtensionBase DoubleOpt;
+ public const int StringOptFieldNumber = 7673285;
+ public static pb::GeneratedExtensionBase StringOpt;
+ public const int BytesOptFieldNumber = 7673238;
+ public static pb::GeneratedExtensionBase BytesOpt;
+ public const int EnumOptFieldNumber = 7673233;
+ public static pb::GeneratedExtensionBase EnumOpt;
+ public const int MessageTypeOptFieldNumber = 7665967;
+ public static pb::GeneratedExtensionBase MessageTypeOpt;
+ public const int QuuxFieldNumber = 7663707;
+ public static pb::GeneratedExtensionBase Quux;
+ public const int CorgeFieldNumber = 7663442;
+ public static pb::GeneratedExtensionBase Corge;
+ public const int GraultFieldNumber = 7650927;
+ public static pb::GeneratedExtensionBase Grault;
+ public const int GarplyFieldNumber = 7649992;
+ public static pb::GeneratedExtensionBase Garply;
+ public const int ComplexOpt1FieldNumber = 7646756;
+ public static pb::GeneratedExtensionBase ComplexOpt1;
+ public const int ComplexOpt2FieldNumber = 7636949;
+ public static pb::GeneratedExtensionBase ComplexOpt2;
+ public const int ComplexOpt3FieldNumber = 7636463;
+ public static pb::GeneratedExtensionBase ComplexOpt3;
+ public const int ComplexOpt6FieldNumber = 7595468;
+ public static pb::GeneratedExtensionBase ComplexOpt6;
+ #endregion
+
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageWithCustomOptions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_TestMessageWithCustomOptions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionFooRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_CustomOptionFooRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionFooResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_CustomOptionFooResponse__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_DummyMessageContainingEnum__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_DummyMessageContainingEnum__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionMinIntegerValues__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_CustomOptionMinIntegerValues__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionOtherValues__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_CustomOptionOtherValues__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_SettingRealsFromPositiveInts__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_SettingRealsFromPositiveInts__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_SettingRealsFromNegativeInts__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_SettingRealsFromNegativeInts__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_ComplexOptionType1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_ComplexOptionType2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType3__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_ComplexOptionType3__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOpt6__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_ComplexOpt6__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_VariousComplexOptions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_VariousComplexOptions__FieldAccessorTable;
+ #endregion
#region Descriptor
public static pbd::FileDescriptor Descriptor {
get { return descriptor; }
}
- private static readonly pbd::FileDescriptor descriptor = pbd::FileDescriptor.InternalBuildGeneratedFileFrom(
- global::System.Convert.FromBase64String(
- "Ci1nb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfY3VzdG9tX29wdGlvbnMucHJv" +
- "dG8SEXByb3RvYnVmX3VuaXR0ZXN0GiRnb29nbGUvcHJvdG9idWYvY3NoYXJw" +
- "X29wdGlvbnMucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnBy" +
- "b3RvIoYBChxUZXN0TWVzc2FnZVdpdGhDdXN0b21PcHRpb25zEh4KBmZpZWxk" +
- "MRgBIAEoCUIOCAHB4MMdLeF1CgIAAAAiNAoGQW5FbnVtEg8KC0FORU5VTV9W" +
- "QUwxEAESDwoLQU5FTlVNX1ZBTDIQAhoIxfbJHev8//86EAgA4OnCHcj/////" +
- "/////wEiGAoWQ3VzdG9tT3B0aW9uRm9vUmVxdWVzdCIZChdDdXN0b21PcHRp" +
- "b25Gb29SZXNwb25zZSJtChpEdW1teU1lc3NhZ2VDb250YWluaW5nRW51bSJP" +
- "CgxUZXN0RW51bVR5cGUSGgoWVEVTVF9PUFRJT05fRU5VTV9UWVBFMRAWEiMK" +
- "FlRFU1RfT1BUSU9OX0VOVU1fVFlQRTIQ6f//////////ASIhCh9EdW1teU1l" +
- "c3NhZ2VJbnZhbGlkQXNPcHRpb25UeXBlIooBChxDdXN0b21PcHRpb25NaW5J" +
- "bnRlZ2VyVmFsdWVzOmqZ1qgdAAAAAAAAAICtja8dAAAAgJHurx0AAAAAAAAA" +
- "AJ31rx0AAAAA+JewHf///////////wGAxLAd/////w/49bAdAICTsh0AsLyy" +
- "HYCAgICAgICAgAHoxrIdgICAgPj/////AdDesh0AIpEBChxDdXN0b21PcHRp" +
- "b25NYXhJbnRlZ2VyVmFsdWVzOnGZ1qgd/////////3+tja8d////f5Hurx3/" +
- "/////////531rx3/////+JewHf7//////////wGAxLAd/v///w/49bAd////" +
- "////////AYCTsh3/////D7C8sh3//////////3/oxrId/////wfQ3rIdASJu" +
- "ChdDdXN0b21PcHRpb25PdGhlclZhbHVlczpTiNmiHen//////////wGy2aId" +
- "C0hlbGxvAFdvcmxkqtyiHQ5IZWxsbywgIldvcmxkIuncoh37WYxCysDzP/Xf" +
- "ox3nh0VB6MayHZz//////////wEiNAocU2V0dGluZ1JlYWxzRnJvbVBvc2l0" +
- "aXZlSW50czoU6dyiHQAAAAAAQGNA9d+jHQAAQEEiNAocU2V0dGluZ1JlYWxz" +
- "RnJvbU5lZ2F0aXZlSW50czoU6dyiHQAAAAAAQGPA9d+jHQAAQMEiKwoSQ29t" +
- "cGxleE9wdGlvblR5cGUxEgsKA2ZvbxgBIAEoBSoICGQQgICAgAIiwQIKEkNv" +
- "bXBsZXhPcHRpb25UeXBlMhIyCgNiYXIYASABKAsyJS5wcm90b2J1Zl91bml0" +
- "dGVzdC5Db21wbGV4T3B0aW9uVHlwZTESCwoDYmF6GAIgASgFEkYKBGZyZWQY" +
- "AyABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIu" +
- "Q29tcGxleE9wdGlvblR5cGU0GpcBChJDb21wbGV4T3B0aW9uVHlwZTQSDQoF" +
- "d2FsZG8YASABKAUycgoMY29tcGxleF9vcHQ0Eh8uZ29vZ2xlLnByb3RvYnVm" +
- "Lk1lc3NhZ2VPcHRpb25zGIr10QMgASgLMjgucHJvdG9idWZfdW5pdHRlc3Qu" +
- "Q29tcGxleE9wdGlvblR5cGUyLkNvbXBsZXhPcHRpb25UeXBlNCoICGQQgICA" +
- "gAIinAEKEkNvbXBsZXhPcHRpb25UeXBlMxILCgNxdXgYASABKAUSVAoSY29t" +
- "cGxleG9wdGlvbnR5cGU1GAIgASgKMjgucHJvdG9idWZfdW5pdHRlc3QuQ29t" +
- "cGxleE9wdGlvblR5cGUzLkNvbXBsZXhPcHRpb25UeXBlNRojChJDb21wbGV4" +
- "T3B0aW9uVHlwZTUSDQoFcGx1Z2gYAyABKAUiHwoLQ29tcGxleE9wdDYSEAoF" +
- "eHl6enkY37/PAyABKAUi0AEKFVZhcmlvdXNDb21wbGV4T3B0aW9uczq2AePc" +
- "/Bz4/fscGOTc/BzSqI8dAwizD/rekB0CCAn63pAdBBMYFhSq/ZAdAxDbB6r9" +
- "kB0G+OaXHY4Fqv2QHQUKAwjnBar9kB0ICgbYhZ4dzw+q/ZAdCgoIkvWdHQMI" +
- "2A+q/ZAdCMKslx0DCOUFqv2QHQvCrJcdBtiFnh3OD6r9kB0NwqyXHQiS9Z0d" +
- "AwjJEKr9kB0FGgMIwQKi4pUdAggqouKVHQbYhZ4dxAKi4pUdCJL1nR0DCOwG" +
- "KjYKCk1ldGhvZE9wdDESEwoPTUVUSE9ET1BUMV9WQUwxEAESEwoPTUVUSE9E" +
- "T1BUMV9WQUwyEAIyjgEKHFRlc3RTZXJ2aWNlV2l0aEN1c3RvbU9wdGlvbnMS" +
- "YwoDRm9vEikucHJvdG9idWZfdW5pdHRlc3QuQ3VzdG9tT3B0aW9uRm9vUmVx" +
- "dWVzdBoqLnByb3RvYnVmX3VuaXR0ZXN0LkN1c3RvbU9wdGlvbkZvb1Jlc3Bv" +
- "bnNlIgXg+oweAhoJkLKLHtPbgMtJOjIKCWZpbGVfb3B0MRIcLmdvb2dsZS5w" +
- "cm90b2J1Zi5GaWxlT3B0aW9ucxiOndgDIAEoBDo4CgxtZXNzYWdlX29wdDES" +
- "Hy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYnK3YAyABKAU6NAoK" +
- "ZmllbGRfb3B0MRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYiLzY" +
- "AyABKAY6OAoKZmllbGRfb3B0MhIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9w" +
- "dGlvbnMYuaHZAyABKAU6AjQyOjIKCWVudW1fb3B0MRIcLmdvb2dsZS5wcm90" +
- "b2J1Zi5FbnVtT3B0aW9ucxjontkDIAEoDzo4CgxzZXJ2aWNlX29wdDESHy5n" +
- "b29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYorbhAyABKBI6VQoLbWV0" +
- "aG9kX29wdDESHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxisz+ED" +
- "IAEoDjIdLnByb3RvYnVmX3VuaXR0ZXN0Lk1ldGhvZE9wdDE6NAoIYm9vbF9v" +
- "cHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY6qvWAyABKAg6" +
- "NQoJaW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25z" +
- "GO2o1gMgASgFOjUKCWludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNz" +
- "YWdlT3B0aW9ucxjGp9YDIAEoAzo2Cgp1aW50MzJfb3B0Eh8uZ29vZ2xlLnBy" +
- "b3RvYnVmLk1lc3NhZ2VPcHRpb25zGLCi1gMgASgNOjYKCnVpbnQ2NF9vcHQS" +
- "Hy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY347WAyABKAQ6NgoK" +
- "c2ludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjA" +
- "iNYDIAEoETo2CgpzaW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3Nh" +
- "Z2VPcHRpb25zGP+C1gMgASgSOjcKC2ZpeGVkMzJfb3B0Eh8uZ29vZ2xlLnBy" +
- "b3RvYnVmLk1lc3NhZ2VPcHRpb25zGNP+1QMgASgHOjcKC2ZpeGVkNjRfb3B0" +
- "Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOL91QMgASgGOjgK" +
- "DHNmaXhlZDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9u" +
- "cxjV8dUDIAEoDzo4CgxzZml4ZWQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYu" +
- "TWVzc2FnZU9wdGlvbnMY44rVAyABKBA6NQoJZmxvYXRfb3B0Eh8uZ29vZ2xl" +
- "LnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGP671AMgASgCOjYKCmRvdWJsZV9v" +
- "cHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYzavUAyABKAE6" +
- "NgoKc3RyaW5nX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9u" +
- "cxjFq9QDIAEoCTo1CglieXRlc19vcHQSHy5nb29nbGUucHJvdG9idWYuTWVz" +
- "c2FnZU9wdGlvbnMYlqvUAyABKAw6cAoIZW51bV9vcHQSHy5nb29nbGUucHJv" +
- "dG9idWYuTWVzc2FnZU9wdGlvbnMYkavUAyABKA4yOi5wcm90b2J1Zl91bml0" +
- "dGVzdC5EdW1teU1lc3NhZ2VDb250YWluaW5nRW51bS5UZXN0RW51bVR5cGU6" +
- "cAoQbWVzc2FnZV90eXBlX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdl" +
- "T3B0aW9ucxiv8tMDIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LkR1bW15TWVz" +
- "c2FnZUludmFsaWRBc09wdGlvblR5cGU6NgoEcXV1eBIlLnByb3RvYnVmX3Vu" +
- "aXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMRjb4NMDIAEoBTpeCgVjb3JnZRIl" +
- "LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMRjS3tMDIAEo" +
- "CzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMzo4CgZn" +
- "cmF1bHQSJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIY" +
- "7/zSAyABKAU6XwoGZ2FycGx5EiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxl" +
- "eE9wdGlvblR5cGUyGMj10gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29t" +
- "cGxleE9wdGlvblR5cGUxOl8KDGNvbXBsZXhfb3B0MRIfLmdvb2dsZS5wcm90" +
- "b2J1Zi5NZXNzYWdlT3B0aW9ucxik3NIDIAEoCzIlLnByb3RvYnVmX3VuaXR0" +
- "ZXN0LkNvbXBsZXhPcHRpb25UeXBlMTpfCgxjb21wbGV4X29wdDISHy5nb29n" +
- "bGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY1Y/SAyABKAsyJS5wcm90b2J1" +
- "Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTI6XwoMY29tcGxleF9vcHQz" +
- "Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGO+L0gMgASgLMiUu" +
- "cHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUzOlcKC2NvbXBs" +
- "ZXhvcHQ2Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGMzLzwMg" +
- "ASgKMh4ucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdDZCT8I+QwohR29v" +
- "Z2xlLlByb3RvY29sQnVmZmVycy5UZXN0UHJvdG9zEh5Vbml0VGVzdEN1c3Rv" +
- "bU9wdGlvbnNQcm90b0ZpbGXw6MEd6q3A5SQ="),
- new pbd::FileDescriptor[] {
+ private static pbd::FileDescriptor descriptor;
+
+ static UnitTestCustomOptionsProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "Ci1nb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfY3VzdG9tX29wdGlvbnMucHJv" +
+ "dG8SEXByb3RvYnVmX3VuaXR0ZXN0GiRnb29nbGUvcHJvdG9idWYvY3NoYXJw" +
+ "X29wdGlvbnMucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnBy" +
+ "b3RvIoYBChxUZXN0TWVzc2FnZVdpdGhDdXN0b21PcHRpb25zEh4KBmZpZWxk" +
+ "MRgBIAEoCUIOCAHB4MMdLeF1CgIAAAAiNAoGQW5FbnVtEg8KC0FORU5VTV9W" +
+ "QUwxEAESDwoLQU5FTlVNX1ZBTDIQAhoIxfbJHev8//86EAgA4OnCHcj/////" +
+ "/////wEiGAoWQ3VzdG9tT3B0aW9uRm9vUmVxdWVzdCIZChdDdXN0b21PcHRp" +
+ "b25Gb29SZXNwb25zZSJtChpEdW1teU1lc3NhZ2VDb250YWluaW5nRW51bSJP" +
+ "CgxUZXN0RW51bVR5cGUSGgoWVEVTVF9PUFRJT05fRU5VTV9UWVBFMRAWEiMK" +
+ "FlRFU1RfT1BUSU9OX0VOVU1fVFlQRTIQ6f//////////ASIhCh9EdW1teU1l" +
+ "c3NhZ2VJbnZhbGlkQXNPcHRpb25UeXBlIooBChxDdXN0b21PcHRpb25NaW5J" +
+ "bnRlZ2VyVmFsdWVzOmqZ1qgdAAAAAAAAAICtja8dAAAAgJHurx0AAAAAAAAA" +
+ "AJ31rx0AAAAA+JewHf///////////wGAxLAd/////w/49bAdAICTsh0AsLyy" +
+ "HYCAgICAgICAgAHoxrIdgICAgPj/////AdDesh0AIpEBChxDdXN0b21PcHRp" +
+ "b25NYXhJbnRlZ2VyVmFsdWVzOnGZ1qgd/////////3+tja8d////f5Hurx3/" +
+ "/////////531rx3/////+JewHf7//////////wGAxLAd/v///w/49bAd////" +
+ "////////AYCTsh3/////D7C8sh3//////////3/oxrId/////wfQ3rIdASJu" +
+ "ChdDdXN0b21PcHRpb25PdGhlclZhbHVlczpTiNmiHen//////////wGy2aId" +
+ "C0hlbGxvAFdvcmxkqtyiHQ5IZWxsbywgIldvcmxkIuncoh37WYxCysDzP/Xf" +
+ "ox3nh0VB6MayHZz//////////wEiNAocU2V0dGluZ1JlYWxzRnJvbVBvc2l0" +
+ "aXZlSW50czoU6dyiHQAAAAAAQGNA9d+jHQAAQEEiNAocU2V0dGluZ1JlYWxz" +
+ "RnJvbU5lZ2F0aXZlSW50czoU6dyiHQAAAAAAQGPA9d+jHQAAQMEiKwoSQ29t" +
+ "cGxleE9wdGlvblR5cGUxEgsKA2ZvbxgBIAEoBSoICGQQgICAgAIiwQIKEkNv" +
+ "bXBsZXhPcHRpb25UeXBlMhIyCgNiYXIYASABKAsyJS5wcm90b2J1Zl91bml0" +
+ "dGVzdC5Db21wbGV4T3B0aW9uVHlwZTESCwoDYmF6GAIgASgFEkYKBGZyZWQY" +
+ "AyABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIu" +
+ "Q29tcGxleE9wdGlvblR5cGU0GpcBChJDb21wbGV4T3B0aW9uVHlwZTQSDQoF" +
+ "d2FsZG8YASABKAUycgoMY29tcGxleF9vcHQ0Eh8uZ29vZ2xlLnByb3RvYnVm" +
+ "Lk1lc3NhZ2VPcHRpb25zGIr10QMgASgLMjgucHJvdG9idWZfdW5pdHRlc3Qu" +
+ "Q29tcGxleE9wdGlvblR5cGUyLkNvbXBsZXhPcHRpb25UeXBlNCoICGQQgICA" +
+ "gAIinAEKEkNvbXBsZXhPcHRpb25UeXBlMxILCgNxdXgYASABKAUSVAoSY29t" +
+ "cGxleG9wdGlvbnR5cGU1GAIgASgKMjgucHJvdG9idWZfdW5pdHRlc3QuQ29t" +
+ "cGxleE9wdGlvblR5cGUzLkNvbXBsZXhPcHRpb25UeXBlNRojChJDb21wbGV4" +
+ "T3B0aW9uVHlwZTUSDQoFcGx1Z2gYAyABKAUiHwoLQ29tcGxleE9wdDYSEAoF" +
+ "eHl6enkY37/PAyABKAUi0AEKFVZhcmlvdXNDb21wbGV4T3B0aW9uczq2AePc" +
+ "/Bz4/fscGOTc/BzSqI8dAwizD/rekB0CCAn63pAdBBMYFhSq/ZAdAxDbB6r9" +
+ "kB0G+OaXHY4Fqv2QHQUKAwjnBar9kB0ICgbYhZ4dzw+q/ZAdCgoIkvWdHQMI" +
+ "2A+q/ZAdCMKslx0DCOUFqv2QHQvCrJcdBtiFnh3OD6r9kB0NwqyXHQiS9Z0d" +
+ "AwjJEKr9kB0FGgMIwQKi4pUdAggqouKVHQbYhZ4dxAKi4pUdCJL1nR0DCOwG" +
+ "KjYKCk1ldGhvZE9wdDESEwoPTUVUSE9ET1BUMV9WQUwxEAESEwoPTUVUSE9E" +
+ "T1BUMV9WQUwyEAIyjgEKHFRlc3RTZXJ2aWNlV2l0aEN1c3RvbU9wdGlvbnMS" +
+ "YwoDRm9vEikucHJvdG9idWZfdW5pdHRlc3QuQ3VzdG9tT3B0aW9uRm9vUmVx" +
+ "dWVzdBoqLnByb3RvYnVmX3VuaXR0ZXN0LkN1c3RvbU9wdGlvbkZvb1Jlc3Bv" +
+ "bnNlIgXg+oweAhoJkLKLHtPbgMtJOjIKCWZpbGVfb3B0MRIcLmdvb2dsZS5w" +
+ "cm90b2J1Zi5GaWxlT3B0aW9ucxiOndgDIAEoBDo4CgxtZXNzYWdlX29wdDES" +
+ "Hy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYnK3YAyABKAU6NAoK" +
+ "ZmllbGRfb3B0MRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYiLzY" +
+ "AyABKAY6OAoKZmllbGRfb3B0MhIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9w" +
+ "dGlvbnMYuaHZAyABKAU6AjQyOjIKCWVudW1fb3B0MRIcLmdvb2dsZS5wcm90" +
+ "b2J1Zi5FbnVtT3B0aW9ucxjontkDIAEoDzo4CgxzZXJ2aWNlX29wdDESHy5n" +
+ "b29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYorbhAyABKBI6VQoLbWV0" +
+ "aG9kX29wdDESHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxisz+ED" +
+ "IAEoDjIdLnByb3RvYnVmX3VuaXR0ZXN0Lk1ldGhvZE9wdDE6NAoIYm9vbF9v" +
+ "cHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY6qvWAyABKAg6" +
+ "NQoJaW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25z" +
+ "GO2o1gMgASgFOjUKCWludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNz" +
+ "YWdlT3B0aW9ucxjGp9YDIAEoAzo2Cgp1aW50MzJfb3B0Eh8uZ29vZ2xlLnBy" +
+ "b3RvYnVmLk1lc3NhZ2VPcHRpb25zGLCi1gMgASgNOjYKCnVpbnQ2NF9vcHQS" +
+ "Hy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY347WAyABKAQ6NgoK" +
+ "c2ludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjA" +
+ "iNYDIAEoETo2CgpzaW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3Nh" +
+ "Z2VPcHRpb25zGP+C1gMgASgSOjcKC2ZpeGVkMzJfb3B0Eh8uZ29vZ2xlLnBy" +
+ "b3RvYnVmLk1lc3NhZ2VPcHRpb25zGNP+1QMgASgHOjcKC2ZpeGVkNjRfb3B0" +
+ "Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOL91QMgASgGOjgK" +
+ "DHNmaXhlZDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9u" +
+ "cxjV8dUDIAEoDzo4CgxzZml4ZWQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYu" +
+ "TWVzc2FnZU9wdGlvbnMY44rVAyABKBA6NQoJZmxvYXRfb3B0Eh8uZ29vZ2xl" +
+ "LnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGP671AMgASgCOjYKCmRvdWJsZV9v" +
+ "cHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYzavUAyABKAE6" +
+ "NgoKc3RyaW5nX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9u" +
+ "cxjFq9QDIAEoCTo1CglieXRlc19vcHQSHy5nb29nbGUucHJvdG9idWYuTWVz" +
+ "c2FnZU9wdGlvbnMYlqvUAyABKAw6cAoIZW51bV9vcHQSHy5nb29nbGUucHJv" +
+ "dG9idWYuTWVzc2FnZU9wdGlvbnMYkavUAyABKA4yOi5wcm90b2J1Zl91bml0" +
+ "dGVzdC5EdW1teU1lc3NhZ2VDb250YWluaW5nRW51bS5UZXN0RW51bVR5cGU6" +
+ "cAoQbWVzc2FnZV90eXBlX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdl" +
+ "T3B0aW9ucxiv8tMDIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LkR1bW15TWVz" +
+ "c2FnZUludmFsaWRBc09wdGlvblR5cGU6NgoEcXV1eBIlLnByb3RvYnVmX3Vu" +
+ "aXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMRjb4NMDIAEoBTpeCgVjb3JnZRIl" +
+ "LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMRjS3tMDIAEo" +
+ "CzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMzo4CgZn" +
+ "cmF1bHQSJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIY" +
+ "7/zSAyABKAU6XwoGZ2FycGx5EiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxl" +
+ "eE9wdGlvblR5cGUyGMj10gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29t" +
+ "cGxleE9wdGlvblR5cGUxOl8KDGNvbXBsZXhfb3B0MRIfLmdvb2dsZS5wcm90" +
+ "b2J1Zi5NZXNzYWdlT3B0aW9ucxik3NIDIAEoCzIlLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LkNvbXBsZXhPcHRpb25UeXBlMTpfCgxjb21wbGV4X29wdDISHy5nb29n" +
+ "bGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY1Y/SAyABKAsyJS5wcm90b2J1" +
+ "Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTI6XwoMY29tcGxleF9vcHQz" +
+ "Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGO+L0gMgASgLMiUu" +
+ "cHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUzOlcKC2NvbXBs" +
+ "ZXhvcHQ2Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGMzLzwMg" +
+ "ASgKMh4ucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdDZCT8I+QwohR29v" +
+ "Z2xlLlByb3RvY29sQnVmZmVycy5UZXN0UHJvdG9zEh5Vbml0VGVzdEN1c3Rv" +
+ "bU9wdGlvbnNQcm90b0ZpbGXw6MEd6q3A5SQ=");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_TestMessageWithCustomOptions__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_TestMessageWithCustomOptions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_TestMessageWithCustomOptions__Descriptor,
+ new string[] { "Field1", });
+ internal__static_protobuf_unittest_CustomOptionFooRequest__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_CustomOptionFooRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_CustomOptionFooRequest__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_CustomOptionFooResponse__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_protobuf_unittest_CustomOptionFooResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_CustomOptionFooResponse__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_DummyMessageContainingEnum__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_protobuf_unittest_DummyMessageContainingEnum__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_DummyMessageContainingEnum__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_CustomOptionMinIntegerValues__Descriptor = Descriptor.MessageTypes[5];
+ internal__static_protobuf_unittest_CustomOptionMinIntegerValues__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_CustomOptionMinIntegerValues__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__Descriptor = Descriptor.MessageTypes[6];
+ internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_CustomOptionOtherValues__Descriptor = Descriptor.MessageTypes[7];
+ internal__static_protobuf_unittest_CustomOptionOtherValues__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_CustomOptionOtherValues__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_SettingRealsFromPositiveInts__Descriptor = Descriptor.MessageTypes[8];
+ internal__static_protobuf_unittest_SettingRealsFromPositiveInts__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_SettingRealsFromPositiveInts__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_SettingRealsFromNegativeInts__Descriptor = Descriptor.MessageTypes[9];
+ internal__static_protobuf_unittest_SettingRealsFromNegativeInts__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_SettingRealsFromNegativeInts__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_ComplexOptionType1__Descriptor = Descriptor.MessageTypes[10];
+ internal__static_protobuf_unittest_ComplexOptionType1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_ComplexOptionType1__Descriptor,
+ new string[] { "Foo", });
+ internal__static_protobuf_unittest_ComplexOptionType2__Descriptor = Descriptor.MessageTypes[11];
+ internal__static_protobuf_unittest_ComplexOptionType2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_ComplexOptionType2__Descriptor,
+ new string[] { "Bar", "Baz", "Fred", });
+ internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__Descriptor = internal__static_protobuf_unittest_ComplexOptionType2__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__Descriptor,
+ new string[] { "Waldo", });
+ global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.ComplexOpt4 = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.Descriptor.Extensions[0]);
+ internal__static_protobuf_unittest_ComplexOptionType3__Descriptor = Descriptor.MessageTypes[12];
+ internal__static_protobuf_unittest_ComplexOptionType3__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_ComplexOptionType3__Descriptor,
+ new string[] { "Qux", "ComplexOptionType5", });
+ internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__Descriptor = internal__static_protobuf_unittest_ComplexOptionType3__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__Descriptor,
+ new string[] { "Plugh", });
+ internal__static_protobuf_unittest_ComplexOpt6__Descriptor = Descriptor.MessageTypes[13];
+ internal__static_protobuf_unittest_ComplexOpt6__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_ComplexOpt6__Descriptor,
+ new string[] { "Xyzzy", });
+ internal__static_protobuf_unittest_VariousComplexOptions__Descriptor = Descriptor.MessageTypes[14];
+ internal__static_protobuf_unittest_VariousComplexOptions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_VariousComplexOptions__Descriptor,
+ new string[] { });
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FileOpt1 = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.MessageOpt1 = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[1]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FieldOpt1 = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[2]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FieldOpt2 = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[3]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.EnumOpt1 = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[4]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ServiceOpt1 = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[5]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.MethodOpt1 = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[6]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.BoolOpt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[7]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Int32Opt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[8]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Int64Opt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[9]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Uint32Opt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[10]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Uint64Opt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[11]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sint32Opt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[12]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sint64Opt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[13]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Fixed32Opt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[14]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Fixed64Opt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[15]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sfixed32Opt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[16]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sfixed64Opt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[17]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FloatOpt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[18]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.DoubleOpt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[19]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.StringOpt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[20]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.BytesOpt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[21]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.EnumOpt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[22]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.MessageTypeOpt = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[23]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Quux = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[24]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Corge = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[25]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Grault = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[26]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Garply = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[27]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt1 = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[28]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt2 = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[29]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt3 = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[30]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt6 = pb::GeneratedSingleExtension.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[31]);
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor,
- });
+ }, assigner);
+ }
#endregion
- #region Extensions
- public const int FileOpt1FieldNumber = 7736974;
- public static readonly pb::GeneratedExtensionBase FileOpt1 =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[0]);
- public const int MessageOpt1FieldNumber = 7739036;
- public static readonly pb::GeneratedExtensionBase MessageOpt1 =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[1]);
- public const int FieldOpt1FieldNumber = 7740936;
- public static readonly pb::GeneratedExtensionBase FieldOpt1 =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[2]);
- public const int FieldOpt2FieldNumber = 7753913;
- public static readonly pb::GeneratedExtensionBase FieldOpt2 =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[3]);
- public const int EnumOpt1FieldNumber = 7753576;
- public static readonly pb::GeneratedExtensionBase EnumOpt1 =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[4]);
- public const int ServiceOpt1FieldNumber = 7887650;
- public static readonly pb::GeneratedExtensionBase ServiceOpt1 =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[5]);
- public const int MethodOpt1FieldNumber = 7890860;
- public static readonly pb::GeneratedExtensionBase MethodOpt1 =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[6]);
- public const int BoolOptFieldNumber = 7706090;
- public static readonly pb::GeneratedExtensionBase BoolOpt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[7]);
- public const int Int32OptFieldNumber = 7705709;
- public static readonly pb::GeneratedExtensionBase Int32Opt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[8]);
- public const int Int64OptFieldNumber = 7705542;
- public static readonly pb::GeneratedExtensionBase Int64Opt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[9]);
- public const int Uint32OptFieldNumber = 7704880;
- public static readonly pb::GeneratedExtensionBase Uint32Opt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[10]);
- public const int Uint64OptFieldNumber = 7702367;
- public static readonly pb::GeneratedExtensionBase Uint64Opt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[11]);
- public const int Sint32OptFieldNumber = 7701568;
- public static readonly pb::GeneratedExtensionBase Sint32Opt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[12]);
- public const int Sint64OptFieldNumber = 7700863;
- public static readonly pb::GeneratedExtensionBase Sint64Opt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[13]);
- public const int Fixed32OptFieldNumber = 7700307;
- public static readonly pb::GeneratedExtensionBase Fixed32Opt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[14]);
- public const int Fixed64OptFieldNumber = 7700194;
- public static readonly pb::GeneratedExtensionBase Fixed64Opt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[15]);
- public const int Sfixed32OptFieldNumber = 7698645;
- public static readonly pb::GeneratedExtensionBase Sfixed32Opt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[16]);
- public const int Sfixed64OptFieldNumber = 7685475;
- public static readonly pb::GeneratedExtensionBase Sfixed64Opt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[17]);
- public const int FloatOptFieldNumber = 7675390;
- public static readonly pb::GeneratedExtensionBase FloatOpt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[18]);
- public const int DoubleOptFieldNumber = 7673293;
- public static readonly pb::GeneratedExtensionBase DoubleOpt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[19]);
- public const int StringOptFieldNumber = 7673285;
- public static readonly pb::GeneratedExtensionBase StringOpt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[20]);
- public const int BytesOptFieldNumber = 7673238;
- public static readonly pb::GeneratedExtensionBase BytesOpt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[21]);
- public const int EnumOptFieldNumber = 7673233;
- public static readonly pb::GeneratedExtensionBase EnumOpt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[22]);
- public const int MessageTypeOptFieldNumber = 7665967;
- public static readonly pb::GeneratedExtensionBase MessageTypeOpt =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[23]);
- public const int QuuxFieldNumber = 7663707;
- public static readonly pb::GeneratedExtensionBase Quux =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[24]);
- public const int CorgeFieldNumber = 7663442;
- public static readonly pb::GeneratedExtensionBase Corge =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[25]);
- public const int GraultFieldNumber = 7650927;
- public static readonly pb::GeneratedExtensionBase Grault =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[26]);
- public const int GarplyFieldNumber = 7649992;
- public static readonly pb::GeneratedExtensionBase Garply =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[27]);
- public const int ComplexOpt1FieldNumber = 7646756;
- public static readonly pb::GeneratedExtensionBase ComplexOpt1 =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[28]);
- public const int ComplexOpt2FieldNumber = 7636949;
- public static readonly pb::GeneratedExtensionBase ComplexOpt2 =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[29]);
- public const int ComplexOpt3FieldNumber = 7636463;
- public static readonly pb::GeneratedExtensionBase ComplexOpt3 =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[30]);
- public const int ComplexOpt6FieldNumber = 7595468;
- public static readonly pb::GeneratedExtensionBase ComplexOpt6 =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[31]);
- #endregion
-
- #region Static variables
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageWithCustomOptions__Descriptor
- = Descriptor.MessageTypes[0];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_TestMessageWithCustomOptions__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_TestMessageWithCustomOptions__Descriptor,
- new string[] { "Field1", });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionFooRequest__Descriptor
- = Descriptor.MessageTypes[1];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_CustomOptionFooRequest__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_CustomOptionFooRequest__Descriptor,
- new string[] { });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionFooResponse__Descriptor
- = Descriptor.MessageTypes[2];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_CustomOptionFooResponse__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_CustomOptionFooResponse__Descriptor,
- new string[] { });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_DummyMessageContainingEnum__Descriptor
- = Descriptor.MessageTypes[3];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_DummyMessageContainingEnum__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_DummyMessageContainingEnum__Descriptor,
- new string[] { });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__Descriptor
- = Descriptor.MessageTypes[4];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__Descriptor,
- new string[] { });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionMinIntegerValues__Descriptor
- = Descriptor.MessageTypes[5];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_CustomOptionMinIntegerValues__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_CustomOptionMinIntegerValues__Descriptor,
- new string[] { });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__Descriptor
- = Descriptor.MessageTypes[6];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__Descriptor,
- new string[] { });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionOtherValues__Descriptor
- = Descriptor.MessageTypes[7];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_CustomOptionOtherValues__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_CustomOptionOtherValues__Descriptor,
- new string[] { });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_SettingRealsFromPositiveInts__Descriptor
- = Descriptor.MessageTypes[8];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_SettingRealsFromPositiveInts__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_SettingRealsFromPositiveInts__Descriptor,
- new string[] { });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_SettingRealsFromNegativeInts__Descriptor
- = Descriptor.MessageTypes[9];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_SettingRealsFromNegativeInts__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_SettingRealsFromNegativeInts__Descriptor,
- new string[] { });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType1__Descriptor
- = Descriptor.MessageTypes[10];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_ComplexOptionType1__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_ComplexOptionType1__Descriptor,
- new string[] { "Foo", });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType2__Descriptor
- = Descriptor.MessageTypes[11];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_ComplexOptionType2__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_ComplexOptionType2__Descriptor,
- new string[] { "Bar", "Baz", "Fred", });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__Descriptor
- = internal__static_protobuf_unittest_ComplexOptionType2__Descriptor.NestedTypes[0];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__Descriptor,
- new string[] { "Waldo", });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType3__Descriptor
- = Descriptor.MessageTypes[12];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_ComplexOptionType3__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_ComplexOptionType3__Descriptor,
- new string[] { "Qux", "ComplexOptionType5", });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__Descriptor
- = internal__static_protobuf_unittest_ComplexOptionType3__Descriptor.NestedTypes[0];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__Descriptor,
- new string[] { "Plugh", });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOpt6__Descriptor
- = Descriptor.MessageTypes[13];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_ComplexOpt6__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_ComplexOpt6__Descriptor,
- new string[] { "Xyzzy", });
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_VariousComplexOptions__Descriptor
- = Descriptor.MessageTypes[14];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_VariousComplexOptions__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_VariousComplexOptions__Descriptor,
- new string[] { });
- #endregion
}
#region Enums
public enum MethodOpt1 {
@@ -447,6 +514,9 @@ namespace Google.ProtocolBuffers.TestProtos {
return this;
}
}
+ static TestMessageWithCustomOptions() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class CustomOptionFooRequest : pb::GeneratedMessage {
@@ -547,6 +617,9 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ static CustomOptionFooRequest() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class CustomOptionFooResponse : pb::GeneratedMessage {
@@ -647,6 +720,9 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ static CustomOptionFooResponse() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class DummyMessageContainingEnum : pb::GeneratedMessage {
@@ -757,6 +833,9 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ static DummyMessageContainingEnum() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class DummyMessageInvalidAsOptionType : pb::GeneratedMessage {
@@ -857,6 +936,9 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ static DummyMessageInvalidAsOptionType() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class CustomOptionMinIntegerValues : pb::GeneratedMessage {
@@ -957,6 +1039,9 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ static CustomOptionMinIntegerValues() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class CustomOptionMaxIntegerValues : pb::GeneratedMessage {
@@ -1057,6 +1142,9 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ static CustomOptionMaxIntegerValues() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class CustomOptionOtherValues : pb::GeneratedMessage {
@@ -1157,6 +1245,9 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ static CustomOptionOtherValues() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class SettingRealsFromPositiveInts : pb::GeneratedMessage {
@@ -1257,6 +1348,9 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ static SettingRealsFromPositiveInts() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class SettingRealsFromNegativeInts : pb::GeneratedMessage {
@@ -1357,6 +1451,9 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ static SettingRealsFromNegativeInts() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class ComplexOptionType1 : pb::ExtendableMessage {
@@ -1485,6 +1582,9 @@ namespace Google.ProtocolBuffers.TestProtos {
return this;
}
}
+ static ComplexOptionType1() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class ComplexOptionType2 : pb::ExtendableMessage {
@@ -1534,8 +1634,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public const int ComplexOpt4FieldNumber = 7633546;
- public static readonly pb::GeneratedExtensionBase ComplexOpt4 =
- pb::GeneratedSingleExtension.CreateInstance(Descriptor.Extensions[0]);
+ public static pb::GeneratedExtensionBase ComplexOpt4;
public const int WaldoFieldNumber = 1;
private bool hasWaldo;
private int waldo_ = 0;
@@ -1640,6 +1739,9 @@ namespace Google.ProtocolBuffers.TestProtos {
return this;
}
}
+ static ComplexOptionType4() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
}
@@ -1841,6 +1943,9 @@ namespace Google.ProtocolBuffers.TestProtos {
return this;
}
}
+ static ComplexOptionType2() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class ComplexOptionType3 : pb::GeneratedMessage {
@@ -1993,6 +2098,9 @@ namespace Google.ProtocolBuffers.TestProtos {
return this;
}
}
+ static ComplexOptionType5() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
}
@@ -2148,6 +2256,9 @@ namespace Google.ProtocolBuffers.TestProtos {
return this;
}
}
+ static ComplexOptionType3() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class ComplexOpt6 : pb::GeneratedMessage {
@@ -2276,6 +2387,9 @@ namespace Google.ProtocolBuffers.TestProtos {
return this;
}
}
+ static ComplexOpt6() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
public sealed partial class VariousComplexOptions : pb::GeneratedMessage {
@@ -2376,6 +2490,9 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ static VariousComplexOptions() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor;
+ }
}
#endregion
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
index 72c52ea2..fdd4acac 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
@@ -8,34 +8,51 @@ namespace Google.ProtocolBuffers.TestProtos {
public static partial class UnitTestEmbedOptimizeForProtoFile {
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEmbedOptimizedForSize__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_TestEmbedOptimizedForSize__FieldAccessorTable;
+ #endregion
#region Descriptor
public static pbd::FileDescriptor Descriptor {
get { return descriptor; }
}
- private static readonly pbd::FileDescriptor descriptor = pbd::FileDescriptor.InternalBuildGeneratedFileFrom(
- global::System.Convert.FromBase64String(
- "CjFnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfZW1iZWRfb3B0aW1pemVfZm9y" +
- "LnByb3RvEhFwcm90b2J1Zl91bml0dGVzdBokZ29vZ2xlL3Byb3RvYnVmL2Nz" +
- "aGFycF9vcHRpb25zLnByb3RvGitnb29nbGUvcHJvdG9idWYvdW5pdHRlc3Rf" +
- "b3B0aW1pemVfZm9yLnByb3RvIqEBChlUZXN0RW1iZWRPcHRpbWl6ZWRGb3JT" +
- "aXplEkEKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyJy5wcm90b2J1Zl91bml0" +
- "dGVzdC5UZXN0T3B0aW1pemVkRm9yU2l6ZRJBChByZXBlYXRlZF9tZXNzYWdl" +
- "GAIgAygLMicucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9wdGltaXplZEZvclNp" +
- "emVCS0gBwj5GCiFHb29nbGUuUHJvdG9jb2xCdWZmZXJzLlRlc3RQcm90b3MS" +
- "IVVuaXRUZXN0RW1iZWRPcHRpbWl6ZUZvclByb3RvRmlsZQ=="),
- new pbd::FileDescriptor[] {
+ private static pbd::FileDescriptor descriptor;
+
+ static UnitTestEmbedOptimizeForProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "CjFnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfZW1iZWRfb3B0aW1pemVfZm9y" +
+ "LnByb3RvEhFwcm90b2J1Zl91bml0dGVzdBokZ29vZ2xlL3Byb3RvYnVmL2Nz" +
+ "aGFycF9vcHRpb25zLnByb3RvGitnb29nbGUvcHJvdG9idWYvdW5pdHRlc3Rf" +
+ "b3B0aW1pemVfZm9yLnByb3RvIqEBChlUZXN0RW1iZWRPcHRpbWl6ZWRGb3JT" +
+ "aXplEkEKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyJy5wcm90b2J1Zl91bml0" +
+ "dGVzdC5UZXN0T3B0aW1pemVkRm9yU2l6ZRJBChByZXBlYXRlZF9tZXNzYWdl" +
+ "GAIgAygLMicucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9wdGltaXplZEZvclNp" +
+ "emVCS0gBwj5GCiFHb29nbGUuUHJvdG9jb2xCdWZmZXJzLlRlc3RQcm90b3MS" +
+ "IVVuaXRUZXN0RW1iZWRPcHRpbWl6ZUZvclByb3RvRmlsZQ==");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_TestEmbedOptimizedForSize__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_TestEmbedOptimizedForSize__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_TestEmbedOptimizedForSize__Descriptor,
+ new string[] { "OptionalMessage", "RepeatedMessage", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestOptimizeForProtoFile.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
global::Google.ProtocolBuffers.TestProtos.UnitTestOptimizeForProtoFile.Descriptor,
- });
+ }, assigner);
+ }
#endregion
- #region Static variables
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_TestEmbedOptimizedForSize__Descriptor
- = Descriptor.MessageTypes[0];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_TestEmbedOptimizedForSize__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_TestEmbedOptimizedForSize__Descriptor,
- new string[] { "OptionalMessage", "RepeatedMessage", });
- #endregion
}
#region Messages
public sealed partial class TestEmbedOptimizedForSize : pb::GeneratedMessage {
@@ -342,6 +359,9 @@ namespace Google.ProtocolBuffers.TestProtos {
return this;
}
}
+ static TestEmbedOptimizedForSize() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestEmbedOptimizeForProtoFile.Descriptor;
+ }
}
#endregion
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
index 45168b6c..16068968 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
@@ -8,31 +8,47 @@ namespace Google.ProtocolBuffers.TestProtos {
public static partial class UnitTestImportProtoFile {
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_import_ImportMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable;
+ #endregion
#region Descriptor
public static pbd::FileDescriptor Descriptor {
get { return descriptor; }
}
- private static readonly pbd::FileDescriptor descriptor = pbd::FileDescriptor.InternalBuildGeneratedFileFrom(
- global::System.Convert.FromBase64String(
- "CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0LnByb3RvEhhwcm90" +
- "b2J1Zl91bml0dGVzdF9pbXBvcnQaJGdvb2dsZS9wcm90b2J1Zi9jc2hhcnBf" +
- "b3B0aW9ucy5wcm90byIaCg1JbXBvcnRNZXNzYWdlEgkKAWQYASABKAUqPAoK" +
- "SW1wb3J0RW51bRIOCgpJTVBPUlRfRk9PEAcSDgoKSU1QT1JUX0JBUhAIEg4K" +
- "CklNUE9SVF9CQVoQCUJbChhjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RIAcI+" +
- "PAohR29vZ2xlLlByb3RvY29sQnVmZmVycy5UZXN0UHJvdG9zEhdVbml0VGVz" +
- "dEltcG9ydFByb3RvRmlsZQ=="),
- new pbd::FileDescriptor[] {
+ private static pbd::FileDescriptor descriptor;
+
+ static UnitTestImportProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0LnByb3RvEhhwcm90" +
+ "b2J1Zl91bml0dGVzdF9pbXBvcnQaJGdvb2dsZS9wcm90b2J1Zi9jc2hhcnBf" +
+ "b3B0aW9ucy5wcm90byIaCg1JbXBvcnRNZXNzYWdlEgkKAWQYASABKAUqPAoK" +
+ "SW1wb3J0RW51bRIOCgpJTVBPUlRfRk9PEAcSDgoKSU1QT1JUX0JBUhAIEg4K" +
+ "CklNUE9SVF9CQVoQCUJbChhjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RIAcI+" +
+ "PAohR29vZ2xlLlByb3RvY29sQnVmZmVycy5UZXN0UHJvdG9zEhdVbml0VGVz" +
+ "dEltcG9ydFByb3RvRmlsZQ==");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_import_ImportMessage__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_import_ImportMessage__Descriptor,
+ new string[] { "D", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
- });
+ }, assigner);
+ }
#endregion
- #region Static variables
- internal static readonly pbd::MessageDescriptor internal__static_protobuf_unittest_import_ImportMessage__Descriptor
- = Descriptor.MessageTypes[0];
- internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable
- = new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_import_ImportMessage__Descriptor,
- new string[] { "D", });
- #endregion
}
#region Enums
public enum ImportEnum {
@@ -253,6 +269,9 @@ namespace Google.ProtocolBuffers.TestProtos {
return this;
}
}
+ static ImportMessage() {
+ pbd::FileDescriptor descriptor = global::Google.ProtocolBuffers.TestProtos.UnitTestImportProtoFile.Descriptor;
+ }
}
#endregion
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
index c21a552b..d526bdf0 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
@@ -8,65 +8,90 @@ namespace Google.ProtocolBuffers.TestProtos {
public static partial class UnitTestMessageSetProtoFile {
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.MessageSetExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.MessageSetExtension);
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSet__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_TestMessageSet__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_TestMessageSetContainer__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_TestMessageSetExtension1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_TestMessageSetExtension2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RawMessageSet__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_RawMessageSet__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable