title: WCF CallBack Object logic
body: <p>In the wcf duplex project I am working on, proxy is created and opened using the following 3 lines:</p>
  
  <pre><code>InstanceContext context = new InstanceContext(new MyCallbackObjectImplementingCallbackContract());
  
  _proxy = new ServiceClient(context);
  
  _proxy.Open();
  </code></pre>
  
  <p>I have a couple of questions here:</p>
  
  <ol>
  <li>Lets say my callback contract has just 3 methods(operation contract) and on my callback class, on top of just implementing those 3 I have like 10 more methods.
  I found by debugging on server side when
  <code>OperationContext.Current.GetCallbackChannel&lt;IMyCallbackContract&gt;()</code> is called
  the object returned has only the methods with attribute 'OperationContract', and not the whole object. What is the magic behind the scenes. Also, is it not a bad design to have bunch of extra(not contract implementations) methods on call back class, if so what impact could it possibly have?</li>
  <li><code>_proxy.open()</code> metadata says object to transition from the created state into the opened state. I don't quite get what that means?</li>
  </ol>