Динамическая отправка производному классу в C#

Я пытаюсь сделать следующее:

public abstract BaseClass {

  public virtual void ReceiveEvent(Event evt)
    {
        ProcessEvent(evt as dynamic);
    }

    private void ProcessEvent(object evt)
    { 
        LogManager.Log(@"Received an event that is not being processed! 
                        Dispatch fallback");
    }
}

public DerivedClass: BaseClass {

    private void ProcessEvent(SpecificEvent evt)
    { 
        LogManager.Log("Processing Event");
    }
}

SpecificEvents попадает в резервный метод, а не в производный класс. Я все время использую динамическую диспетчеризацию в одном и том же классе и считаю ее действительно полезной/чистой. Не будет ли это работать с производными классами, как показано в примере выше?

РЕДАКТИРОВАТЬ: Какая-то путаница в ответах. В основном я все время использую следующий дизайн:

public class SomeClass{

    public void DoSomethingDispatcher(SomeObject obj)
    {
        ProcessObject(obj as dynamic);
    }

    private void DoSomething(SomeObjectType1 obj)
    { 

    }

    private void DoSomething(SomeObjectType2 obj)
    { 

    }

    private void DoSomething(SomeObjectType3 obj)
    { 

    }

    private void DoSomething(object obj) //fallback
    { 

    }
}

Прекрасно работает, когда вы не знаете точный тип заранее и не хотите использовать большой оператор switch. Просто интересно, можно ли это реализовать с наследованием, когда базовый класс содержит резервный метод, а производный класс содержит все более конкретные методы.

8
задан Harry Mexican 21 May 2012 в 10:21
поделиться