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;
                    }
                }
            }
        }
Example #2
0
 public void SerializeChildItem(BinaryConverterBase serializeItem, object obj, BinaryWriter writer, SerializationContext context)
 {
     serializeItem.Serialize(obj, writer, context);
 }