Finished adding find tag by name
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
index 4222d57..12c4b9f 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
@@ -59,6 +59,8 @@
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class OptionsMessage : pb::GeneratedMessage<OptionsMessage, OptionsMessage.Builder> {
private static readonly OptionsMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly string[] _optionsMessageFieldNames = new string[] { "customized", "normal", "options_message" };
+ private static readonly uint[] _optionsMessageFieldTags = new uint[] { 26, 10, 18 };
public static OptionsMessage DefaultInstance {
get { return defaultInstance; }
}
@@ -117,14 +119,15 @@
public override void WriteTo(pb::ICodedOutputStream output) {
int size = SerializedSize;
+ string[] field_names = _optionsMessageFieldNames;
if (hasNormal) {
- output.WriteString(1, "normal", Normal);
+ output.WriteString(1, field_names[1], Normal);
}
if (hasOptionsMessage_) {
- output.WriteString(2, "options_message", OptionsMessage_);
+ output.WriteString(2, field_names[2], OptionsMessage_);
}
if (hasCustomName) {
- output.WriteString(3, "customized", CustomName);
+ output.WriteString(3, field_names[0], CustomName);
}
UnknownFields.WriteTo(output);
}
@@ -262,6 +265,18 @@
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionsMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionsMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
switch (tag) {
case 0: {
throw pb::InvalidProtocolBufferException.InvalidTag();
@@ -280,15 +295,15 @@
break;
}
case 10: {
- result.hasNormal |= input.ReadString(ref result.normal_);
+ result.hasNormal = input.ReadString(ref result.normal_);
break;
}
case 18: {
- result.hasOptionsMessage_ |= input.ReadString(ref result.optionsMessage_);
+ result.hasOptionsMessage_ = input.ReadString(ref result.optionsMessage_);
break;
}
case 26: {
- result.hasCustomName |= input.ReadString(ref result.customized_);
+ result.hasCustomName = input.ReadString(ref result.customized_);
break;
}
}