У меня есть Color
базовый класс и несколько классов производных цветов:
public class Color { }
public class Red : Color { }
public class Blue : Color { }
В моей модели типов времени выполнения я добавляю все производные цвета в качестве подтипов Color
:
void AddColors(MetaType baseColorMeta, List<Type> colors)
{
// Demonstration; the field numbers are consistent in actual code
for (var i = 0; i < colors.Count; ++i)
baseColorMeta.AddSubType(i, colors[i]);
}
Где-то в моем серверном приложении я сериализирую список, содержащий кучу цветов, и отправляю их по сети клиенту:
var colors = new List<Color> { new Red(), new Blue() };
MyTypeModel.Serialize(socket, colors);
Я столкнулся спроблема, когда сервер может вводить новые цвета, о которых клиент не знает, что приводит к исключению «неизвестный подтип».Это ожидается с точки зрения клиента, и он должен знать, как обращаться с этими неизвестными вещами.
Есть ли способ для меня, чтобы изящно обработать это на клиенте, или предоставить какое-то значение по умолчанию для неизвестных дочерних элементов?типы (т.е. класс UnknownColor
)?