I’m not sure that I’m doing the right thing here…
I’m writing a user control that’s supposed to be (fairly) generic. It’s a bit like a modified email client specifically tailored to some of the internal things we do.
The view is composed of two main pieces, a message list and a viewer. I need this viewer to be interchangeable, so if someone wants a different style of view they can simply handle an event and change a property. My original idea was to just have an INoteViewer, but since I’m adding it to my form I also need to guarantee that this object is a Windows.Forms.Control of some sort.
Should I continue along these lines and maybe raise an ArgumentException if I can’t cast it to INoteViewer, or should I go a different direction and create a class that inherits from Windows.Forms.Control?
To do what you want, you could do something like this:
Actually, if you use an abstract class, you might as well not use an interface.