Как определить универсальный тип во время выполнения?
- Привет!
У меня есть следующий сценарий:
public class Envelope { public string MessageId {get;} public abstract Stream GetStream() }
public class Envelope<T> : Envelope { public T Body {get;} }
У меня есть еще 2 класса под названием MessageBus и MessageSender, которые отвечают за управление и передачу сообщения всем службам приложений.
public class MessageBus { public void Send(Envelope message) { sender.Dispatch(message); } } public class MessageSender { public void Dispatch(Envelope message) { // THE PROBLEM IS HERE!!!!! // HOW DO I IDENTIFY THE TYPE OF BODY? // On Envelope (base class) the property Body is missing and i can't get the type // to try create instance of change type .. and i need to pass body as parameter to // another method } }
Извините за мой плохой английский и большое вам спасибо за ваше время :)
Что я уже пробовал:
Рефлексия может быть работой, но я пытаюсь решить ее более "элегантным" способом.