| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030 | // Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  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.Examples.AddressBook {    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]  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<global::Google.ProtocolBuffers.Examples.AddressBook.Person, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Builder> internal__static_tutorial_Person__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_tutorial_Person_PhoneNumber__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Builder> internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_tutorial_AddressBook__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook, global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.Builder> internal__static_tutorial_AddressBook__FieldAccessorTable;    #endregion    #region Descriptor    public static pbd::FileDescriptor Descriptor {      get { return descriptor; }    }    private static pbd::FileDescriptor descriptor;        static AddressBookProtos() {      byte[] descriptorData = global::System.Convert.FromBase64String(          "Chp0dXRvcmlhbC9hZGRyZXNzYm9vay5wcm90bxIIdHV0b3JpYWwi2gEKBlBl" +           "cnNvbhIMCgRuYW1lGAEgAigJEgoKAmlkGAIgAigFEg0KBWVtYWlsGAMgASgJ" +           "EisKBXBob25lGAQgAygLMhwudHV0b3JpYWwuUGVyc29uLlBob25lTnVtYmVy" +           "Gk0KC1Bob25lTnVtYmVyEg4KBm51bWJlchgBIAIoCRIuCgR0eXBlGAIgASgO" +           "MhoudHV0b3JpYWwuUGVyc29uLlBob25lVHlwZToESE9NRSIrCglQaG9uZVR5" +           "cGUSCgoGTU9CSUxFEAASCAoESE9NRRABEggKBFdPUksQAiIvCgtBZGRyZXNz" +           "Qm9vaxIgCgZwZXJzb24YASADKAsyEC50dXRvcmlhbC5QZXJzb25CAkgB");      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<global::Google.ProtocolBuffers.Examples.AddressBook.Person, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Builder>(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<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Builder>(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<global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook, global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.Builder>(internal__static_tutorial_AddressBook__Descriptor,                new string[] { "Person", });        return null;      };      pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,          new pbd::FileDescriptor[] {          }, assigner);    }    #endregion      }  #region Messages  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]  public sealed partial class Person : pb::GeneratedMessage<Person, Person.Builder> {    private static readonly Person defaultInstance = new Builder().BuildPartial();    private static readonly string[] _personFieldNames = new string[] { "email", "id", "name", "phone" };    private static readonly uint[] _personFieldTags = new uint[] { 26, 16, 10, 34 };    public static Person DefaultInstance {      get { return defaultInstance; }    }        public override Person DefaultInstanceForType {      get { return defaultInstance; }    }        protected override Person ThisMessage {      get { return this; }    }        public static pbd::MessageDescriptor Descriptor {      get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_Person__Descriptor; }    }        protected override pb::FieldAccess.FieldAccessorTable<Person, Person.Builder> InternalFieldAccessors {      get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_Person__FieldAccessorTable; }    }        #region Nested types    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]    public static class Types {      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]      public enum PhoneType {        MOBILE = 0,        HOME = 1,        WORK = 2,      }            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]      public sealed partial class PhoneNumber : pb::GeneratedMessage<PhoneNumber, PhoneNumber.Builder> {        private static readonly PhoneNumber defaultInstance = new Builder().BuildPartial();        private static readonly string[] _phoneNumberFieldNames = new string[] { "number", "type" };        private static readonly uint[] _phoneNumberFieldTags = new uint[] { 10, 16 };        public static PhoneNumber DefaultInstance {          get { return defaultInstance; }        }                public override PhoneNumber DefaultInstanceForType {          get { return defaultInstance; }        }                protected override PhoneNumber ThisMessage {          get { return this; }        }                public static pbd::MessageDescriptor Descriptor {          get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_Person_PhoneNumber__Descriptor; }        }                protected override pb::FieldAccess.FieldAccessorTable<PhoneNumber, PhoneNumber.Builder> InternalFieldAccessors {          get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable; }        }                public const int NumberFieldNumber = 1;        private bool hasNumber;        private string number_ = "";        public bool HasNumber {          get { return hasNumber; }        }        public string Number {          get { return number_; }        }                public const int TypeFieldNumber = 2;        private bool hasType;        private global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType type_ = global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType.HOME;        public bool HasType {          get { return hasType; }        }        public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType Type {          get { return type_; }        }                public override bool IsInitialized {          get {            if (!hasNumber) return false;            return true;          }        }                public override void WriteTo(pb::ICodedOutputStream output) {          int size = SerializedSize;          string[] field_names = _phoneNumberFieldNames;          if (hasNumber) {            output.WriteString(1, field_names[0], Number);          }          if (hasType) {            output.WriteEnum(2, field_names[1], (int) Type, Type);          }          UnknownFields.WriteTo(output);        }                private int memoizedSerializedSize = -1;        public override int SerializedSize {          get {            int size = memoizedSerializedSize;            if (size != -1) return size;                        size = 0;            if (hasNumber) {              size += pb::CodedOutputStream.ComputeStringSize(1, Number);            }            if (hasType) {              size += pb::CodedOutputStream.ComputeEnumSize(2, (int) Type);            }            size += UnknownFields.SerializedSize;            memoizedSerializedSize = size;            return size;          }        }                public static PhoneNumber ParseFrom(pb::ByteString data) {          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();        }        public static PhoneNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();        }        public static PhoneNumber ParseFrom(byte[] data) {          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();        }        public static PhoneNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();        }        public static PhoneNumber ParseFrom(global::System.IO.Stream input) {          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();        }        public static PhoneNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();        }        public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input) {          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();        }        public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();        }        public static PhoneNumber ParseFrom(pb::ICodedInputStream input) {          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();        }        public static PhoneNumber ParseFrom(pb::ICodedInputStream 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(PhoneNumber prototype) {          return (Builder) new Builder().MergeFrom(prototype);        }                [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]        public sealed partial class Builder : pb::GeneratedBuilder<PhoneNumber, Builder> {          protected override Builder ThisBuilder {            get { return this; }          }          public Builder() {}                    PhoneNumber result = new PhoneNumber();                    protected override PhoneNumber MessageBeingBuilt {            get { return result; }          }                    public override Builder Clear() {            result = new PhoneNumber();            return this;          }                    public override Builder Clone() {            return new Builder().MergeFrom(result);          }                    public override pbd::MessageDescriptor DescriptorForType {            get { return global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Descriptor; }          }                    public override PhoneNumber DefaultInstanceForType {            get { return global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.DefaultInstance; }          }                    public override PhoneNumber BuildPartial() {            if (result == null) {              throw new global::System.InvalidOperationException("build() has already been called on this Builder");            }            PhoneNumber returnMe = result;            result = null;            return returnMe;          }                    public override Builder MergeFrom(pb::IMessage other) {            if (other is PhoneNumber) {              return MergeFrom((PhoneNumber) other);            } else {              base.MergeFrom(other);              return this;            }          }                    public override Builder MergeFrom(PhoneNumber other) {            if (other == global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.DefaultInstance) return this;            if (other.HasNumber) {              Number = other.Number;            }            if (other.HasType) {              Type = other.Type;            }            this.MergeUnknownFields(other.UnknownFields);            return this;          }                    public override Builder MergeFrom(pb::ICodedInputStream input) {            return MergeFrom(input, pb::ExtensionRegistry.Empty);          }                    public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {            pb::UnknownFieldSet.Builder unknownFields = null;            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(_phoneNumberFieldNames, field_name, global::System.StringComparer.Ordinal);                if(field_ordinal >= 0)                  tag = _phoneNumberFieldTags[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();                }                default: {                  if (pb::WireFormat.IsEndGroupTag(tag)) {                    if (unknownFields != null) {                      this.UnknownFields = unknownFields.Build();                    }                    return this;                  }                  if (unknownFields == null) {                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);                  }                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);                  break;                }                case 10: {                  result.hasNumber = input.ReadString(ref result.number_);                  break;                }                case 16: {                  object unknown;                  if(input.ReadEnum(ref result.type_, out unknown)) {                    result.hasType = true;                  } else if(unknown is int) {                    if (unknownFields == null) {                      unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);                    }                    unknownFields.MergeVarintField(2, (ulong)(int)unknown);                  }                  break;                }              }            }                        if (unknownFields != null) {              this.UnknownFields = unknownFields.Build();            }            return this;          }                              public bool HasNumber {            get { return result.hasNumber; }          }          public string Number {            get { return result.Number; }            set { SetNumber(value); }          }          public Builder SetNumber(string value) {            pb::ThrowHelper.ThrowIfNull(value, "value");            result.hasNumber = true;            result.number_ = value;            return this;          }          public Builder ClearNumber() {            result.hasNumber = false;            result.number_ = "";            return this;          }                    public bool HasType {           get { return result.hasType; }          }          public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType Type {            get { return result.Type; }            set { SetType(value); }          }          public Builder SetType(global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType value) {            result.hasType = true;            result.type_ = value;            return this;          }          public Builder ClearType() {            result.hasType = false;            result.type_ = global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType.HOME;            return this;          }        }        static PhoneNumber() {          object.ReferenceEquals(global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.Descriptor, null);        }      }          }    #endregion        public const int NameFieldNumber = 1;    private bool hasName;    private string name_ = "";    public bool HasName {      get { return hasName; }    }    public string Name {      get { return name_; }    }        public const int IdFieldNumber = 2;    private bool hasId;    private int id_;    public bool HasId {      get { return hasId; }    }    public int Id {      get { return id_; }    }        public const int EmailFieldNumber = 3;    private bool hasEmail;    private string email_ = "";    public bool HasEmail {      get { return hasEmail; }    }    public string Email {      get { return email_; }    }        public const int PhoneFieldNumber = 4;    private pbc::PopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber> phone_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber>();    public scg::IList<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber> PhoneList {      get { return phone_; }    }    public int PhoneCount {      get { return phone_.Count; }    }    public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber GetPhone(int index) {      return phone_[index];    }        public override bool IsInitialized {      get {        if (!hasName) return false;        if (!hasId) return false;        foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber element in PhoneList) {          if (!element.IsInitialized) return false;        }        return true;      }    }        public override void WriteTo(pb::ICodedOutputStream output) {      int size = SerializedSize;      string[] field_names = _personFieldNames;      if (hasName) {        output.WriteString(1, field_names[2], Name);      }      if (hasId) {        output.WriteInt32(2, field_names[1], Id);      }      if (hasEmail) {        output.WriteString(3, field_names[0], Email);      }      if (phone_.Count > 0) {        output.WriteMessageArray(4, field_names[3], phone_);      }      UnknownFields.WriteTo(output);    }        private int memoizedSerializedSize = -1;    public override int SerializedSize {      get {        int size = memoizedSerializedSize;        if (size != -1) return size;                size = 0;        if (hasName) {          size += pb::CodedOutputStream.ComputeStringSize(1, Name);        }        if (hasId) {          size += pb::CodedOutputStream.ComputeInt32Size(2, Id);        }        if (hasEmail) {          size += pb::CodedOutputStream.ComputeStringSize(3, Email);        }        foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber element in PhoneList) {          size += pb::CodedOutputStream.ComputeMessageSize(4, element);        }        size += UnknownFields.SerializedSize;        memoizedSerializedSize = size;        return size;      }    }        public static Person ParseFrom(pb::ByteString data) {      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();    }    public static Person ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();    }    public static Person ParseFrom(byte[] data) {      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();    }    public static Person ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();    }    public static Person ParseFrom(global::System.IO.Stream input) {      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();    }    public static Person ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();    }    public static Person ParseDelimitedFrom(global::System.IO.Stream input) {      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();    }    public static Person ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();    }    public static Person ParseFrom(pb::ICodedInputStream input) {      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();    }    public static Person ParseFrom(pb::ICodedInputStream 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(Person prototype) {      return (Builder) new Builder().MergeFrom(prototype);    }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]    public sealed partial class Builder : pb::GeneratedBuilder<Person, Builder> {      protected override Builder ThisBuilder {        get { return this; }      }      public Builder() {}            Person result = new Person();            protected override Person MessageBeingBuilt {        get { return result; }      }            public override Builder Clear() {        result = new Person();        return this;      }            public override Builder Clone() {        return new Builder().MergeFrom(result);      }            public override pbd::MessageDescriptor DescriptorForType {        get { return global::Google.ProtocolBuffers.Examples.AddressBook.Person.Descriptor; }      }            public override Person DefaultInstanceForType {        get { return global::Google.ProtocolBuffers.Examples.AddressBook.Person.DefaultInstance; }      }            public override Person BuildPartial() {        if (result == null) {          throw new global::System.InvalidOperationException("build() has already been called on this Builder");        }        result.phone_.MakeReadOnly();        Person returnMe = result;        result = null;        return returnMe;      }            public override Builder MergeFrom(pb::IMessage other) {        if (other is Person) {          return MergeFrom((Person) other);        } else {          base.MergeFrom(other);          return this;        }      }            public override Builder MergeFrom(Person other) {        if (other == global::Google.ProtocolBuffers.Examples.AddressBook.Person.DefaultInstance) return this;        if (other.HasName) {          Name = other.Name;        }        if (other.HasId) {          Id = other.Id;        }        if (other.HasEmail) {          Email = other.Email;        }        if (other.phone_.Count != 0) {          base.AddRange(other.phone_, result.phone_);        }        this.MergeUnknownFields(other.UnknownFields);        return this;      }            public override Builder MergeFrom(pb::ICodedInputStream input) {        return MergeFrom(input, pb::ExtensionRegistry.Empty);      }            public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {        pb::UnknownFieldSet.Builder unknownFields = null;        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(_personFieldNames, field_name, global::System.StringComparer.Ordinal);            if(field_ordinal >= 0)              tag = _personFieldTags[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();            }            default: {              if (pb::WireFormat.IsEndGroupTag(tag)) {                if (unknownFields != null) {                  this.UnknownFields = unknownFields.Build();                }                return this;              }              if (unknownFields == null) {                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);              }              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);              break;            }            case 10: {              result.hasName = input.ReadString(ref result.name_);              break;            }            case 16: {              result.hasId = input.ReadInt32(ref result.id_);              break;            }            case 26: {              result.hasEmail = input.ReadString(ref result.email_);              break;            }            case 34: {              input.ReadMessageArray(tag, field_name, result.phone_, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.DefaultInstance, extensionRegistry);              break;            }          }        }                if (unknownFields != null) {          this.UnknownFields = unknownFields.Build();        }        return this;      }                  public bool HasName {        get { return result.hasName; }      }      public string Name {        get { return result.Name; }        set { SetName(value); }      }      public Builder SetName(string value) {        pb::ThrowHelper.ThrowIfNull(value, "value");        result.hasName = true;        result.name_ = value;        return this;      }      public Builder ClearName() {        result.hasName = false;        result.name_ = "";        return this;      }            public bool HasId {        get { return result.hasId; }      }      public int Id {        get { return result.Id; }        set { SetId(value); }      }      public Builder SetId(int value) {        result.hasId = true;        result.id_ = value;        return this;      }      public Builder ClearId() {        result.hasId = false;        result.id_ = 0;        return this;      }            public bool HasEmail {        get { return result.hasEmail; }      }      public string Email {        get { return result.Email; }        set { SetEmail(value); }      }      public Builder SetEmail(string value) {        pb::ThrowHelper.ThrowIfNull(value, "value");        result.hasEmail = true;        result.email_ = value;        return this;      }      public Builder ClearEmail() {        result.hasEmail = false;        result.email_ = "";        return this;      }            public pbc::IPopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber> PhoneList {        get { return result.phone_; }      }      public int PhoneCount {        get { return result.PhoneCount; }      }      public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber GetPhone(int index) {        return result.GetPhone(index);      }      public Builder SetPhone(int index, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber value) {        pb::ThrowHelper.ThrowIfNull(value, "value");        result.phone_[index] = value;        return this;      }      public Builder SetPhone(int index, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Builder builderForValue) {        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");        result.phone_[index] = builderForValue.Build();        return this;      }      public Builder AddPhone(global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber value) {        pb::ThrowHelper.ThrowIfNull(value, "value");        result.phone_.Add(value);        return this;      }      public Builder AddPhone(global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Builder builderForValue) {        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");        result.phone_.Add(builderForValue.Build());        return this;      }      public Builder AddRangePhone(scg::IEnumerable<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber> values) {        base.AddRange(values, result.phone_);        return this;      }      public Builder ClearPhone() {        result.phone_.Clear();        return this;      }    }    static Person() {      object.ReferenceEquals(global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.Descriptor, null);    }  }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]  public sealed partial class AddressBook : pb::GeneratedMessage<AddressBook, AddressBook.Builder> {    private static readonly AddressBook defaultInstance = new Builder().BuildPartial();    private static readonly string[] _addressBookFieldNames = new string[] { "person" };    private static readonly uint[] _addressBookFieldTags = new uint[] { 10 };    public static AddressBook DefaultInstance {      get { return defaultInstance; }    }        public override AddressBook DefaultInstanceForType {      get { return defaultInstance; }    }        protected override AddressBook ThisMessage {      get { return this; }    }        public static pbd::MessageDescriptor Descriptor {      get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_AddressBook__Descriptor; }    }        protected override pb::FieldAccess.FieldAccessorTable<AddressBook, AddressBook.Builder> InternalFieldAccessors {      get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_AddressBook__FieldAccessorTable; }    }        public const int PersonFieldNumber = 1;    private pbc::PopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person> person_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person>();    public scg::IList<global::Google.ProtocolBuffers.Examples.AddressBook.Person> PersonList {      get { return person_; }    }    public int PersonCount {      get { return person_.Count; }    }    public global::Google.ProtocolBuffers.Examples.AddressBook.Person GetPerson(int index) {      return person_[index];    }        public override bool IsInitialized {      get {        foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person element in PersonList) {          if (!element.IsInitialized) return false;        }        return true;      }    }        public override void WriteTo(pb::ICodedOutputStream output) {      int size = SerializedSize;      string[] field_names = _addressBookFieldNames;      if (person_.Count > 0) {        output.WriteMessageArray(1, field_names[0], person_);      }      UnknownFields.WriteTo(output);    }        private int memoizedSerializedSize = -1;    public override int SerializedSize {      get {        int size = memoizedSerializedSize;        if (size != -1) return size;                size = 0;        foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person element in PersonList) {          size += pb::CodedOutputStream.ComputeMessageSize(1, element);        }        size += UnknownFields.SerializedSize;        memoizedSerializedSize = size;        return size;      }    }        public static AddressBook ParseFrom(pb::ByteString data) {      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();    }    public static AddressBook ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();    }    public static AddressBook ParseFrom(byte[] data) {      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();    }    public static AddressBook ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();    }    public static AddressBook ParseFrom(global::System.IO.Stream input) {      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();    }    public static AddressBook ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();    }    public static AddressBook ParseDelimitedFrom(global::System.IO.Stream input) {      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();    }    public static AddressBook ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();    }    public static AddressBook ParseFrom(pb::ICodedInputStream input) {      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();    }    public static AddressBook ParseFrom(pb::ICodedInputStream 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(AddressBook prototype) {      return (Builder) new Builder().MergeFrom(prototype);    }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]    public sealed partial class Builder : pb::GeneratedBuilder<AddressBook, Builder> {      protected override Builder ThisBuilder {        get { return this; }      }      public Builder() {}            AddressBook result = new AddressBook();            protected override AddressBook MessageBeingBuilt {        get { return result; }      }            public override Builder Clear() {        result = new AddressBook();        return this;      }            public override Builder Clone() {        return new Builder().MergeFrom(result);      }            public override pbd::MessageDescriptor DescriptorForType {        get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.Descriptor; }      }            public override AddressBook DefaultInstanceForType {        get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.DefaultInstance; }      }            public override AddressBook BuildPartial() {        if (result == null) {          throw new global::System.InvalidOperationException("build() has already been called on this Builder");        }        result.person_.MakeReadOnly();        AddressBook returnMe = result;        result = null;        return returnMe;      }            public override Builder MergeFrom(pb::IMessage other) {        if (other is AddressBook) {          return MergeFrom((AddressBook) other);        } else {          base.MergeFrom(other);          return this;        }      }            public override Builder MergeFrom(AddressBook other) {        if (other == global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.DefaultInstance) return this;        if (other.person_.Count != 0) {          base.AddRange(other.person_, result.person_);        }        this.MergeUnknownFields(other.UnknownFields);        return this;      }            public override Builder MergeFrom(pb::ICodedInputStream input) {        return MergeFrom(input, pb::ExtensionRegistry.Empty);      }            public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {        pb::UnknownFieldSet.Builder unknownFields = null;        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(_addressBookFieldNames, field_name, global::System.StringComparer.Ordinal);            if(field_ordinal >= 0)              tag = _addressBookFieldTags[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();            }            default: {              if (pb::WireFormat.IsEndGroupTag(tag)) {                if (unknownFields != null) {                  this.UnknownFields = unknownFields.Build();                }                return this;              }              if (unknownFields == null) {                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);              }              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);              break;            }            case 10: {              input.ReadMessageArray(tag, field_name, result.person_, global::Google.ProtocolBuffers.Examples.AddressBook.Person.DefaultInstance, extensionRegistry);              break;            }          }        }                if (unknownFields != null) {          this.UnknownFields = unknownFields.Build();        }        return this;      }                  public pbc::IPopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person> PersonList {        get { return result.person_; }      }      public int PersonCount {        get { return result.PersonCount; }      }      public global::Google.ProtocolBuffers.Examples.AddressBook.Person GetPerson(int index) {        return result.GetPerson(index);      }      public Builder SetPerson(int index, global::Google.ProtocolBuffers.Examples.AddressBook.Person value) {        pb::ThrowHelper.ThrowIfNull(value, "value");        result.person_[index] = value;        return this;      }      public Builder SetPerson(int index, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Builder builderForValue) {        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");        result.person_[index] = builderForValue.Build();        return this;      }      public Builder AddPerson(global::Google.ProtocolBuffers.Examples.AddressBook.Person value) {        pb::ThrowHelper.ThrowIfNull(value, "value");        result.person_.Add(value);        return this;      }      public Builder AddPerson(global::Google.ProtocolBuffers.Examples.AddressBook.Person.Builder builderForValue) {        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");        result.person_.Add(builderForValue.Build());        return this;      }      public Builder AddRangePerson(scg::IEnumerable<global::Google.ProtocolBuffers.Examples.AddressBook.Person> values) {        base.AddRange(values, result.person_);        return this;      }      public Builder ClearPerson() {        result.person_.Clear();        return this;      }    }    static AddressBook() {      object.ReferenceEquals(global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.Descriptor, null);    }  }    #endregion  }
 |