| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | 
							- using System;
 
- using System.IO;
 
- namespace Google.ProtocolBuffers.Examples.AddressBook
 
- {
 
-     internal class SampleUsage
 
-     {
 
-         private static void Main()
 
-         {
 
-             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!");
 
-         }
 
-     }
 
- }
 
 
  |