Протобуф-сериала сериализация/десериализация путем ссылкиC#

Место общения программистов C#
Ответить
Anonymous
 Протобуф-сериала сериализация/десериализация путем ссылки

Сообщение Anonymous »

Я использую Protobuf-Net версию 3.2.52 < /p>
Классы B, C и D ниже содержат поле Wplane типа, все из которых имеют один и тот же экземпляр. < /p>
В классе Wplane я преобразую свойство плоскости (этот тип поступает из внешней библиотеки), когда Byte с этим внешним библиотечным серийным serialize, я вижу, что все ссылки на тип Wplane имеют один и тот же экземпляр.
Однако, когда десериализация байтовых массивов у каждого есть свой собственный экземпляр.
Как я могу убедиться, что у всех байтовых массивов есть один и тот же экземпляр? < /p>
.[ProtoContract(SkipConstructor = true)]
public class B : A
{
public B (parameters) : base(parameters)
{
//Some stuffs
}

[ProtoMember(6, AsReference = true)]
private WPlane _Plane;
}

[ProtoContract(SkipConstructor = true)]
public class C
{
public C (parameters)
{
//Some stuffs
}

[ProtoMember(2, AsReference = true)]
private WPlane _Plane;
}

[ProtoContract(SkipConstructor = true)]
public class D
{
public D (parameters)
{
//Some stuffs
}

[ProtoMember(2, AsReference = true)]
private WPlane _Plane;
}

[ProtoContract(SkipConstructor = true)]
public class WPlane
{
private bool _IsSerialized;

public WPlane (Plane plane)
{
_IsSerialized = false;
Plane = plane;
}

[ProtoMember(2, AsReference = true)]
private byte[] _Plane_BA;

public Plane Plane { get; set; }

[ProtoBeforeSerialization]
private void OnSerializing()
{
_Plane_BA = SerializationHelper.EyeshotObjectSerialize(Plane);
_IsSerialized = true;
}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... -reference
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»