title: Designing a class that varies by metadata
body: <p>I have a scenario to create the common class definition. I have a class name called as <code>Product</code> and product may have product details like Name, Brand, cost etc...</p>
  
  <p>But metadata about the product may change like <code>Pen - May have Color,Type, Ink</code> and <code>Pencil - May have Color, WithEraser,Size</code> etc...</p>
  
  <p>I have to get these details thrught the WCF service. So I have to create Request object to hold the information to be carried forward to server. </p>
  
  <p>I don't like to include the pen related metadata info to the client if pencil is asked and vice versa. </p>
  
  <p>I am thinking of Create Interface for each productMetadata like </p>
  
  <p>Pen - Color, type and Ink 
  Pencil - Color, Size and WithEraser, </p>
  
  <p>I want to to implement them in the individual classes and also Common product MetaData classes. Based on the type of product I will create a new object and use it. </p>
  
  <p>Is there any other perfect solution to solve this. </p>