Beispiel #1
0
        static void Main(string[] args)
        {
            //    byte[] bytes;
            //    //Create a builder to start building a message
            //    Person.Builder newContact = Person.CreateBuilder();
            //    //Set the primitive properties
            //    newContact.SetId(1)
            //              .SetName("Foo")
            //              .SetEmail("foo@bar");
            //    //Now add an item to a list (repeating) field
            //    newContact.AddPhone(
            //        //Create the child message inline
            //        Person.Types.PhoneNumber.CreateBuilder().SetNumber("555-1212").Build()
            //        );
            //    //Now build the final message:
            //    Person person = newContact.Build();
            //    //The builder is no longer valid (at least not now, scheduled for 2.4):
            //    newContact = null;
            //    using (MemoryStream stream = new MemoryStream())
            //    {
            //        //Save the person to a stream
            //        person.WriteTo(stream);
            //        bytes = stream.ToArray();
            //    }
            //    //Create another builder, merge the byte[], and build the message:
            //    Person copy = Person.CreateBuilder().MergeFrom(bytes).Build();

            //    //A more streamlined approach might look like this:
            //    bytes = AddressBook.CreateBuilder().AddPerson(copy).Build().ToByteArray();
            //    //And read the address book back again
            //    AddressBook restored = AddressBook.CreateBuilder().MergeFrom(bytes).Build();
            //    //The message performs a deep-comparison on equality:
            //    if (restored.PersonCount != 1 || !person.Equals(restored.PersonList[0]))
            //        throw new ApplicationException("There is a bad person in here!");

            //  CSHead.Builder myCSHeadBuilder = CSHead.CreateBuilder();
            //  myCSHeadBuilder.SetCommand(1);
            //  myCSHeadBuilder.SetSubcmd(2);
            //  myCSHeadBuilder.SetUuid(ByteString.CopyFrom("3", Encoding.ASCII));
            //  myCSHeadBuilder.SetRouteKey(4);
            //            CSHead cshead = myCSHeadBuilder.Build();
            //byte[] CSHeadBuffer = cshead.ToByteArray();

            Person p = new Person.Builder().SetId(1).SetName("lee").SetEmail("*****@*****.**").Build();

            byte[] buffer = null;
            using (MemoryStream ms = new MemoryStream())
            {
                p.WriteTo(ms);
                buffer = ms.ToArray();
            }

            Person p2 = Person.CreateBuilder().MergeFrom(buffer).Build();
        }