private void CustomInit() { if (IsCustomInited == null) { lock (this) { if (IsCustomInited == null) { SerializationInfo serializationInfo = new SerializationInfo(CurrentType, new FormatterConverter()); ((ISerializable)UserDefinedObject).GetObjectData(serializationInfo, _context); ItemNamesForISerializable = new string[serializationInfo.MemberCount]; BinaryConverters = new BinaryConverterBase[serializationInfo.MemberCount]; BinaryConverterTypesForISerializable = new Type[serializationInfo.MemberCount]; var i = 0; foreach (SerializationEntry serializationEntry in serializationInfo) { BinaryConverters[i] = BinaryConverterBase.GetBinaryConverter(serializationEntry.ObjectType); BinaryConverterTypesForISerializable[i] = serializationEntry.ObjectType; ItemNamesForISerializable[i] = serializationEntry.Name; i++; } IsCustomInited = true; } } } }
public void SerializeChildItem(BinaryConverterBase serializeItem, object obj, BinaryWriter writer, SerializationContext context) { serializeItem.Serialize(obj, writer, context); }