Я подозреваю, что на самом деле это 2 разных сценария, но что касается образца кода, добавленного Эндрю, это связано с тем, что он не может (заранее) выяснить, что он собирается делать по умолчанию значения (по умолчанию данные обрабатываются как необязательные у получателя). Есть 3 способа исправить это:
1: добавьте перечисление со значением 0 (поскольку 0 всегда является значением CLI по умолчанию для нулей), например
public enum SiteType
{
Error = 0,
...
2: укажите, какое значение использовать по умолчанию:
[ProtoMember(10), DefaultValue(SiteType.Partition)]
public SiteType Type { get; set; }
3: сообщите движку, что ему действительно не нужно об этом беспокоиться, т.е. что он будет иметь значение:
[ProtoMember(10, IsRequired = true)]
public SiteType Type { get; set; }
person
Marc Gravell
schedule
15.11.2010