Допустим, у меня есть класс автомобилей в игре, в который можно играть по сети.У нас есть базовые свойства, которые никогда не меняются, такие как model и engineSize, которые одинаковы для каждой игры.У нас есть свойства времени выполнения, такие как текущее местоположение и текущая скорость, которые мы можем сохранить в текущей игре и перезагрузить позже.Наконец, у нас есть данные, которые мы должны передать другим игрокам по сети - возможно, в этом случае местоположение и скорость снова, но, скажем, скорость и расстояниеAwayFromYou.
Итак, у нас есть класс, который может выглядеть примерно так (игнорироватьточный синтаксис или обсуждение идентификаторов):
public Car
{
public string Model; /* Base data */
public int EngineSize; /* Base data */
public PointF Location; /* Runtime data */
public double Speed; /* Runtime and network data */
public double distanceAwayFromYou; /* Network data */
}
Теперь я мог бы написать схему для создания сериализуемых частичных классов (например, с использованием xsd.exe) для базовых данных, данных времени выполнения или сетевых данных,Но здесь у меня есть один класс с тремя подмножествами данных XML для использования:
Базовые данные:
<Car>
<Model>Honda</Model>
<EngineSize>2999</EngineSize>
</Car>
Данные времени выполнения:
<Car>
<Location><X>10</X><Y>20</Y></Location>
<Speed>60.4</Speed>
</Car>
Сетевые данные:
<Car>
<Speed>60.4</Speed>
<DistanceFromYou>45.67</DistanceFromYou>
</Car>
Ранее я решил эту проблему с помощью пользовательских атрибутов и отражения;однако, это не красиво и, насколько я знаю, не может автоматически проверять схему.Есть ли более простой способ, или как бы вы это сделали?
Спасибо.