我有几个不同的类代表消息数据(实现ToString()
方法)
DatabaseMessage
Method1Message
Method2Message
- ETC...
然后我有一个Message
类,它有一个代表发送者的字符串和一个代表关于消息数据类之一的字符串(来自ToString()
消息)。我创建了这个类来通过我的通信管道发送消息。
在另一端,我Message
从字符串创建一个类并将其发送到一个特定的方法,该方法确切地知道它是哪种消息数据类型。然后我想将整个消息对象转换为能够访问特定消息数据(例如DatabaseMessage
类)的东西。
class DatabaseMessage
{
public string ToString()
{
// ...
}
}
class Message
{
public string sender;
public string data;
public static Message FromString(string message)
{
// ...
}
}
//...
public void Send()
{
DatabaseMessage db_mess = new DatabaseMessage();
Message m = new Message();
m.sender = "me";
m.data = db_mess.ToString();
}
public void Recieve(string message)
{
Message m = Message.FromString(message);
DatabaseMethod(m);
}
public void DatabaseMethod(Message m)
{
// I want to be able to do this:
DatabaseMessage db_mess = (DatabaseMessage)m;
//...
}
一个人将如何实现这一点?
希望这是有道理的。