C# Drag and Drop - e.Data.GetData using a base class

You can wrap the data in a common class. For example, assuming your base class is called DragDropBaseControl

public class DragDropInfo
{
  public DragDropBaseControl Control { get; private set; }

  public DragDropInfo(DragDropBaseControl control)
  {
    this.Control = control;
  }
}

And then the drag drop can be initiated with the following in the base class

DoDragDrop(new DragDropInfo(this), DragDropEffects.All);

And you can access the data in the drag events using the following

e.Data.GetData(typeof(DragDropInfo));

Have I understood your requirement correctly?