Словарь действий <T> делегатов

У меня есть объектXML сериализованные сообщения входить в класс под названиемMessageRouter, XML содержит имя типа, с которого оно было сериализовано, и мне нужно иметь возможностьвызывать различные методы делегата в зависимости от типа, которые не известны до времени выполнения, Я'Я не очень силен в дженериках, так что, надеюсь, это будет иметь смысл для кого-то ... Я

Я хотел бы MessageRouter, чтобы обеспечитьRegisterDelegateForType метод вроде так:

myMessageRouter.RegisterDelegateForType(new Action(myActionHandler));

А затем сохранить типы или типСтроковое представление в словаре:

Dictionary registeredDelegates;

Таким образом, я могу сделать что-то вроде следующего псевдокода, вызывая типНазначенный делегат и передавший десериализованный объект:

Type xmlSerializedType = TypeFromXmlString(incomingXml);
object deserializedObject = DeserializeObjectFromXml(xmlSerializedType, incomingXml);

// then invoke the action and pass in the deserialized object
registeredDelegates[xmlSerializedType](deserializedObject);

Итак, мои вопросы:

Как вы определяете словарь, который может содержатьType в качестве ключа и общегоAction в качестве значения, а метод RegisterDelegateForType заполняет словарь?Если это'не возможно, чтолучший способ сделать это?

Ответы на вопрос(2)

Ваш ответ на вопрос