Herencia de UserControl abstracta en el diseñador de Visual Studio

abstract class CustomControl : UserControl 
{
    protected abstract int DoStuff();
}

class DetailControl : CustomControl
{
    protected override int DoStuff()
    { 
        // do stuff
        return result;
    }
}

Solté un DetailControl en un formulario. Se procesa correctamente en tiempo de ejecución, pero el diseñador muestra un error y no se abre porque el control de usuario base es abstracto.

or el momento, estoy contemplando el siguiente parche, que me parece bastante incorrecto, ya que quiero que las clases secundarias se vean obligadas a implementar el método.

class CustomControl : UserControl 
{
    protected virtual int DoStuff()
    {
        throw new InvalidOperationException("This method must be overriden.");
    }
}

class DetailControl : CustomControl
{
    protected override int DoStuff()
    { 
        // do stuff
        return result;
    }
}

¿Alguien tiene una mejor idea sobre cómo solucionar este problema?

Respuestas a la pregunta(9)

Su respuesta a la pregunta