title: .net WPF IValueConverter Constructor
body: <p>Simple question:</p>
  
  <p>Why do I have to have a <code>constructor</code> for a <code>IValueConverter</code>?</p>
  
  <p>I'm not asking, why do I have to have an <code>empty constructor</code>, I'm asking why do I have to have one at all?</p>
  
  <p>If I have:</p>
  
  <pre><code>public class PauseButtonValueConverter : MarkupExtension, IValueConverter
  {
    //public PauseButtonValueConverter() //&lt;- Uncomment this and the error is fixed
    //{
    //}
  
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
      throw new NotImplementedException();
    }
  
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
      throw new NotImplementedException();
    }
  
    public override object ProvideValue(IServiceProvider serviceProvider)
    {
      return this;
    }
  }
  </code></pre>
  
  <p>Then, my <code>VS2012</code> gives me the compile-time error: <code>No constructor for type 'PauseButtonValueConverter' has 0 parameters.</code></p>
  
  <p>If I add the <code>constructor</code>, the error is fixed.</p>