У меня есть консольное приложение клиент / сервер, которое использует сокеты для связи. Они работают на одной машине, но независимо друг от друга. У меня также есть два класса: Aircraft и Seat, которые они оба клиент / сервер могут сериализовать и десериализовать. Проблема, с которой я столкнулся, заключается в том, что Сервер может получать либо серийный экземпляр самолета, либо серийное место. Как мне обойти, чтобы определить, относится ли полученная строка к типу самолета или сиденья? Ниже приведен код, который я использую для десериализации объектов.
public static class EntityDeserialization
{
/// <summary>
/// Converts the stream of bytes into an instance of a aircraft.
/// can be used on both Client and Server ends to access
/// properties and methods of each aircraft instance
/// </summary>
/// <returns>The Aircraft.</returns>
/// <param name="serialisedData">Serialised Aircraft.</param>
public static Aircraft GetAircraft(string serialisedData)
{
XmlSerializer deserialiser = new XmlSerializer(typeof(Aircraft));
using (TextReader tr = new StringReader(serialisedData))
{
return (Aircraft)deserialiser.Deserialize(tr);
}
}
/// <summary>
/// Converts the stream of bytes into an instance of a seat.
/// can be used on both Client and Server ends to access
/// properties and methods of each seat instance
/// </summary>
/// <returns>The Aircraft.</returns>
/// <param name="serialisedData">Serialised Seat.</param>
public static Seat GetSeat(string serialisedData)
{
XmlSerializer deserialiser = new XmlSerializer(typeof(Seat));
using (TextReader tr = new StringReader(serialisedData))
{
return (Seat)deserialiser.Deserialize(tr);
}
}
}