title: Creating abstraction over a class locate in external library
body: <p>The c# project I am working on make references to a "Product" concrete type that resides in an external class libray. "Product" class does not implement any interface.</p>
  
  <p>I would like to create an "IProduct" interface base on "Product" and use this interface code, so I can program against an interface, not an implementation.</p>
  
  <p>As I still want to keep using "Product" type, what could be a good pattern to let my code knows "Product" implements "IProduct"? </p>
  
  <p>As "Product" resides in an external library, I cannnot alter its declaration (i.e Procut: IProduct).</p>
  
  <p>The class has also no public constructor, so I guess extending it is not an option.</p>
  
  <p>What is a good solution pattern for this scenario? A wrapper?</p>
  
  <p>Thank you.</p>