title: Difference between Dual interface and Dispatch only interface for C# COM automation
body: <p>I am implementing a c# COM client against a C++ COM server. The COM client functions correctly when I mark the COM interface as "Dual" but it throws an InvalidCastException when I remove the "Dual" attribute.</p>
  
  <p>Therefore the easy fix for me is to mark it as Dual. But from reading online, it looks like it is not the recommended approach to use for COM servers. Can anyone explain to me the significance (in layman terms) to marking an interface as dual and why it would not be recommended? </p>
  
  <p>I only need it for testing purposes, and I'm using C# client (don't anticipate that I ever will use VB)  </p>
  
  <p>Alternatively, can anyone point me to a good walkthrough on creating a C# COM client for non-Dual interfaces (the examples on MSDN all are dual interfaces) Thanks!</p>