title: Are ProtoBuf attribute ProtoMember inherited with tag value in C#
body: <p>How does <code>.Net</code> <code>ProtoBuf</code> 's <code>ProtoMember</code> work in the inheritance chain? For example, look at the following classes.</p>
  
  <pre><code>[ProtoContract]
  public class BaseClass
  {
      [ProtoMember(1)]
      public int Id { get; set; }
      [ProtoMember(2)]
      public string Name { get; set; }
  }
  
  [ProtoContract] //required?
  public class DerivedClass : BaseClass
  {
      [ProtoMember(3)] //can tag value be 1 ?
      public string Category { get; set; }
  }
  </code></pre>
  
  <p>Questions are mentioned in the code inline. </p>
  
  <p>(1) Do I need to mark the derived class <code>ProtoContract</code> if base class is already <code>ProtoContract</code>?<br>
  (2) For properties of derived class, can I reuse tag values (<code>int</code>) of <code>ProtoMember</code> already used in base class properties?  </p>