При редактировании звучит так, как будто вы хотите, чтобы длина без сериализовала ее (поскольку, если вы хотите, чтобы длина с сериализовала ее, вы просто сериализовали бы ее и проверяли .Length
).
По сути, нет - это недоступно.Я знаю, что некоторые из других реализаций с удовольствием строят эти данные, то есть в части , потому что они все время строят буферизованные данные, где protobuf-net работает из графа объектов.
protobuf-net не делает это - он строит данные путем обнаружения в течение одного прохода по графу объектов.Есть ли у вас какая-то конкретная цель?Вещи всегда можно добавить (хотя и с усилием).
По вопросу о поле примечаний (строки), которое вы не хотите, чтобы его размер был слишком большим;в качестве проверки работоспособности обратите внимание, что protubuf использует UTF8 или строковые данные, поэтому лично Я бы просто сделал:
if(theText.Length > MAX || Encoding.UTF8.GetByteCount(theText) > MAX
|| GetSerializedLength(obj) > MAX)
{
//
}
обратите внимание, что мы проверили это немного дешевле в очевидных случаях