Пример #1
0
 ListFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertorGenerator, Type type, IFieldHandler itemSpecialized)
 {
     _fieldHandlerFactory    = fieldHandlerFactory;
     _typeConvertorGenerator = typeConvertorGenerator;
     _type         = type;
     _itemsHandler = itemSpecialized;
 }
Пример #2
0
 public static void GenerateLoadEx(this ITypeDescriptor descriptor, IILGen ilGenerator, Action<IILGen> pushReader, Action<IILGen> pushCtx, Action<IILGen> pushDescriptor, Type asType, ITypeConvertorGenerator convertorGenerator)
 {
     if (descriptor.StoredInline)
     {
         if (descriptor.LoadNeedsHelpWithConversion && asType!=typeof(object))
         {
             var origType = descriptor.GetPreferedType();
             descriptor.GenerateLoad(ilGenerator, pushReader, pushCtx, pushDescriptor, origType);
             if (origType != asType)
             {
                 var conv = convertorGenerator.GenerateConversion(origType, asType);
                 if (conv == null)
                     throw new BTDBException("Don't know how to convert " + descriptor.Name + " from " +
                                             origType.ToSimpleName() + " to " + asType.ToSimpleName());
                 conv(ilGenerator);
             }
         }
         else
         {
             descriptor.GenerateLoad(ilGenerator, pushReader, pushCtx, pushDescriptor, asType);
         }
     }
     else
     {
         ilGenerator
             .Do(pushCtx)
             .Callvirt(() => default(ITypeBinaryDeserializerContext).LoadObject());
         if (asType != typeof(object))
             ilGenerator.Castclass(asType);
     }
 }
Пример #3
0
 ListFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertorGenerator, Type type, IFieldHandler itemSpecialized)
 {
     _fieldHandlerFactory = fieldHandlerFactory;
     _typeConvertorGenerator = typeConvertorGenerator;
     _type = type;
     _itemsHandler = itemSpecialized;
 }
Пример #4
0
 public ListTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, Type type)
 {
     _convertorGenerator = typeSerializers.ConvertorGenerator;
     _typeSerializers = typeSerializers;
     _type = type;
     _itemType = GetItemType(type);
 }
Пример #5
0
 public ListTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, Type type)
 {
     _convertorGenerator = typeSerializers.ConvertorGenerator;
     _typeSerializers    = typeSerializers;
     _type     = type;
     _itemType = GetItemType(type);
 }
Пример #6
0
 public EventSerializer(ITypeNameMapper typeNameMapper = null, ITypeConvertorGenerator typeConvertorGenerator = null)
 {
     TypeNameMapper = typeNameMapper ?? new FullNameTypeMapper();
     ConvertorGenerator = typeConvertorGenerator ?? new DefaultTypeConvertorGenerator();
     _id2Info.Add(null); // 0 = null
     _id2Info.Add(null); // 1 = back reference
     foreach (var predefinedType in BasicSerializersFactory.TypeDescriptors)
     {
         var infoForType = new SerializerTypeInfo
         {
             Id = _id2Info.Count,
             Descriptor = predefinedType
         };
         _typeOrDescriptor2Info[predefinedType] = infoForType;
         _id2Info.Add(infoForType);
         _typeOrDescriptor2Info[predefinedType.GetPreferedType()] = infoForType;
         var descriptorMultipleNativeTypes = predefinedType as ITypeDescriptorMultipleNativeTypes;
         if (descriptorMultipleNativeTypes == null) continue;
         foreach (var type in descriptorMultipleNativeTypes.GetNativeTypes())
         {
             _typeOrDescriptor2Info[type] = infoForType;
         }
     }
     while (_id2Info.Count < ReservedBuildinTypes) _id2Info.Add(null);
 }
Пример #7
0
 public EventDeserializer(ITypeNameMapper typeNameMapper = null, ITypeConvertorGenerator typeConvertorGenerator = null)
 {
     TypeNameMapper     = typeNameMapper ?? new FullNameTypeMapper();
     ConvertorGenerator = typeConvertorGenerator ?? new DefaultTypeConvertorGenerator();
     _id2Info.Add(null); // 0 = null
     _id2Info.Add(null); // 1 = back reference
     foreach (var predefinedType in BasicSerializersFactory.TypeDescriptors)
     {
         var infoForType = new DeserializerTypeInfo
         {
             Id         = _id2Info.Count,
             Descriptor = predefinedType
         };
         _typeOrDescriptor2Info[predefinedType] = infoForType;
         _id2Info.Add(infoForType);
         _typeOrDescriptor2Info[predefinedType.GetPreferedType()] = infoForType;
         var descriptorMultipleNativeTypes = predefinedType as ITypeDescriptorMultipleNativeTypes;
         if (descriptorMultipleNativeTypes == null)
         {
             continue;
         }
         foreach (var type in descriptorMultipleNativeTypes.GetNativeTypes())
         {
             _typeOrDescriptor2Info[type] = infoForType;
         }
     }
     while (_id2Info.Count < ReservedBuildinTypes)
     {
         _id2Info.Add(null);
     }
 }
Пример #8
0
 public ListFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertorGenerator, byte[] configuration)
 {
     _fieldHandlerFactory = fieldHandlerFactory;
     _typeConvertorGenerator = typeConvertorGenerator;
     _configuration = configuration;
     var reader = new ByteArrayReader(configuration);
     _itemsHandler = _fieldHandlerFactory.CreateFromReader(reader, FieldHandlerOptions.None);
 }
Пример #9
0
 DictionaryFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertorGenerator, Type type, IFieldHandler keySpecialized, IFieldHandler valueSpecialized)
 {
     _fieldHandlerFactory = fieldHandlerFactory;
     _typeConvertorGenerator = typeConvertorGenerator;
     _type = type;
     _keysHandler = keySpecialized;
     _valuesHandler = valueSpecialized;
 }
Пример #10
0
 DictionaryFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertorGenerator, Type type, IFieldHandler keySpecialized, IFieldHandler valueSpecialized)
 {
     _fieldHandlerFactory    = fieldHandlerFactory;
     _typeConvertorGenerator = typeConvertorGenerator;
     _type          = type;
     _keysHandler   = keySpecialized;
     _valuesHandler = valueSpecialized;
 }
Пример #11
0
 public static IILGen GenerateLoad(this IILGen ilGenerator, IFieldHandler fieldHandler, Type typeWanted,
                                   Action <IILGen> pushReaderOrCtx, ITypeConvertorGenerator typeConvertorGenerator)
 {
     fieldHandler.Load(ilGenerator,
                       fieldHandler.NeedsCtx() ? pushReaderOrCtx : PushReaderFromCtx(pushReaderOrCtx));
     typeConvertorGenerator.GenerateConversion(fieldHandler.HandledType(), typeWanted) !(ilGenerator);
     return(ilGenerator);
 }
Пример #12
0
 ODBSetFieldHandler(IObjectDB odb, byte[] configuration, IFieldHandler specializedKeyHandler)
 {
     _odb = odb;
     _typeConvertGenerator = odb.TypeConvertorGenerator;
     _configuration        = configuration;
     _keysHandler          = specializedKeyHandler;
     CreateConfiguration();
 }
Пример #13
0
        public ListFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertorGenerator, byte[] configuration)
        {
            _fieldHandlerFactory    = fieldHandlerFactory;
            _typeConvertorGenerator = typeConvertorGenerator;
            _configuration          = configuration;
            var reader = new ByteArrayReader(configuration);

            _itemsHandler = _fieldHandlerFactory.CreateFromReader(reader, FieldHandlerOptions.None);
        }
Пример #14
0
 public DictionaryTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, Type type)
 {
     _convertorGenerator = typeSerializers.ConvertorGenerator;
     _typeSerializers = typeSerializers;
     _type = type;
     var genericArguments = type.GetGenericArguments();
     _keyType = genericArguments[0];
     _valueType = genericArguments[1];
 }
Пример #15
0
 DictionaryFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertGenerator, Type type, IFieldHandler keySpecialized, IFieldHandler valueSpecialized)
 {
     _fieldHandlerFactory  = fieldHandlerFactory;
     _typeConvertGenerator = typeConvertGenerator;
     _type          = type;
     _keysHandler   = keySpecialized;
     _valuesHandler = valueSpecialized;
     Configuration  = Array.Empty <byte>();
 }
Пример #16
0
        public NullableFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertorGenerator, byte[] configuration)
        {
            _fieldHandlerFactory    = fieldHandlerFactory;
            _typeConvertorGenerator = typeConvertorGenerator;
            Configuration           = configuration;
            var reader = new SpanReader(configuration);

            _itemHandler = _fieldHandlerFactory.CreateFromReader(ref reader, FieldHandlerOptions.None);
        }
Пример #17
0
 ListFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertGenerator, Type type, IFieldHandler itemSpecialized)
 {
     _fieldHandlerFactory  = fieldHandlerFactory;
     _typeConvertGenerator = typeConvertGenerator;
     _type         = type;
     _isSet        = type.InheritsOrImplements(typeof(ISet <>));
     _itemsHandler = itemSpecialized;
     Configuration = Array.Empty <byte>();
 }
Пример #18
0
 ODBDictionaryFieldHandler(IObjectDB odb, byte[] configuration, int configurationId, IFieldHandler specializedKeyHandler, IFieldHandler specializedValueHandler)
 {
     _odb = odb;
     _fieldHandlerFactory = odb.FieldHandlerFactory;
     _typeConvertorGenerator = odb.TypeConvertorGenerator;
     _configuration = configuration;
     _keysHandler = specializedKeyHandler;
     _valuesHandler = specializedValueHandler;
     CreateConfiguration();
 }
Пример #19
0
 public ListFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertorGenerator, Type type)
 {
     _fieldHandlerFactory = fieldHandlerFactory;
     _typeConvertorGenerator = typeConvertorGenerator;
     _type = type;
     _itemsHandler = _fieldHandlerFactory.CreateFromType(type.GetGenericArguments()[0], FieldHandlerOptions.None);
     var writer = new ByteBufferWriter();
     writer.WriteFieldHandler(_itemsHandler);
     _configuration = writer.Data.ToByteArray();
 }
Пример #20
0
        public DictionaryFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertGenerator, byte[] configuration)
        {
            _fieldHandlerFactory  = fieldHandlerFactory;
            _typeConvertGenerator = typeConvertGenerator;
            Configuration         = configuration;
            var reader = new ByteArrayReader(configuration);

            _keysHandler   = _fieldHandlerFactory.CreateFromReader(reader, FieldHandlerOptions.None);
            _valuesHandler = _fieldHandlerFactory.CreateFromReader(reader, FieldHandlerOptions.None);
        }
Пример #21
0
 ODBDictionaryFieldHandler(IObjectDB odb, byte[] configuration, int configurationId, IFieldHandler specializedKeyHandler, IFieldHandler specializedValueHandler)
 {
     _odb = odb;
     _fieldHandlerFactory    = odb.FieldHandlerFactory;
     _typeConvertorGenerator = odb.TypeConvertorGenerator;
     _configuration          = configuration;
     _keysHandler            = specializedKeyHandler;
     _valuesHandler          = specializedValueHandler;
     CreateConfiguration();
 }
Пример #22
0
        public DictionaryTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, Type type)
        {
            _convertorGenerator = typeSerializers.ConvertorGenerator;
            _typeSerializers    = typeSerializers;
            _type = type;
            var genericArguments = type.GetGenericArguments();

            _keyType   = genericArguments[0];
            _valueType = genericArguments[1];
        }
Пример #23
0
        public ListFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertorGenerator, Type type)
        {
            _fieldHandlerFactory    = fieldHandlerFactory;
            _typeConvertorGenerator = typeConvertorGenerator;
            _type         = type;
            _itemsHandler = _fieldHandlerFactory.CreateFromType(type.GetGenericArguments()[0], FieldHandlerOptions.None);
            var writer = new ByteBufferWriter();

            writer.WriteFieldHandler(_itemsHandler);
            _configuration = writer.Data.ToByteArray();
        }
Пример #24
0
 public ODBDictionaryFieldHandler(IObjectDB odb, byte[] configuration)
 {
     _odb = odb;
     _fieldHandlerFactory = odb.FieldHandlerFactory;
     _typeConvertorGenerator = odb.TypeConvertorGenerator;
     _configuration = configuration;
     var reader = new ByteArrayReader(configuration);
     _keysHandler = _fieldHandlerFactory.CreateFromReader(reader, FieldHandlerOptions.Orderable | FieldHandlerOptions.AtEndOfStream);
     _valuesHandler = _fieldHandlerFactory.CreateFromReader(reader, FieldHandlerOptions.None);
     CreateConfiguration();
 }
Пример #25
0
        public ListFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertGenerator, Type type)
        {
            _fieldHandlerFactory  = fieldHandlerFactory;
            _typeConvertGenerator = typeConvertGenerator;
            _type         = type;
            _isSet        = type.InheritsOrImplements(typeof(ISet <>));
            _itemsHandler = _fieldHandlerFactory.CreateFromType(type.GetGenericArguments()[0], FieldHandlerOptions.None);
            var writer = new SpanWriter();

            writer.WriteFieldHandler(_itemsHandler);
            Configuration = writer.GetSpan().ToArray();
        }
Пример #26
0
        public ODBSetFieldHandler(IObjectDB odb, Type type, IFieldHandlerFactory fieldHandlerFactory)
        {
            _odb = odb;
            _typeConvertGenerator = odb.TypeConvertorGenerator;
            _type        = type;
            _keysHandler = fieldHandlerFactory.CreateFromType(type.GetGenericArguments()[0], FieldHandlerOptions.Orderable | FieldHandlerOptions.AtEndOfStream);
            var writer = new ByteBufferWriter();

            writer.WriteFieldHandler(_keysHandler);
            _configuration = writer.Data.ToByteArray();
            CreateConfiguration();
        }
Пример #27
0
        public ODBDictionaryFieldHandler(IObjectDB odb, byte[] configuration)
        {
            _odb = odb;
            _fieldHandlerFactory    = odb.FieldHandlerFactory;
            _typeConvertorGenerator = odb.TypeConvertorGenerator;
            _configuration          = configuration;
            var reader = new ByteArrayReader(configuration);

            _keysHandler   = _fieldHandlerFactory.CreateFromReader(reader, FieldHandlerOptions.Orderable | FieldHandlerOptions.AtEndOfStream);
            _valuesHandler = _fieldHandlerFactory.CreateFromReader(reader, FieldHandlerOptions.None);
            CreateConfiguration();
        }
Пример #28
0
        public DictionaryFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertGenerator, Type type)
        {
            _fieldHandlerFactory  = fieldHandlerFactory;
            _typeConvertGenerator = typeConvertGenerator;
            _type          = type;
            _keysHandler   = _fieldHandlerFactory.CreateFromType(type.GetGenericArguments()[0], FieldHandlerOptions.None);
            _valuesHandler = _fieldHandlerFactory.CreateFromType(type.GetGenericArguments()[1], FieldHandlerOptions.None);
            var writer = new SpanWriter();

            writer.WriteFieldHandler(_keysHandler);
            writer.WriteFieldHandler(_valuesHandler);
            Configuration = writer.GetSpan().ToArray();
        }
Пример #29
0
        public ODBSetFieldHandler(IObjectDB odb, byte[] configuration)
        {
            _odb = odb;
            var fieldHandlerFactory = odb.FieldHandlerFactory;

            _typeConvertGenerator = odb.TypeConvertorGenerator;
            _configuration        = configuration;
            var reader = new SpanReader(configuration);

            _keysHandler = fieldHandlerFactory.CreateFromReader(ref reader,
                                                                FieldHandlerOptions.Orderable | FieldHandlerOptions.AtEndOfStream);
            CreateConfiguration();
        }
Пример #30
0
 public ODBDictionaryFieldHandler(IObjectDB odb, Type type)
 {
     _odb = odb;
     _fieldHandlerFactory = odb.FieldHandlerFactory;
     _typeConvertorGenerator = odb.TypeConvertorGenerator;
     _type = type;
     _keysHandler = _fieldHandlerFactory.CreateFromType(type.GetGenericArguments()[0], FieldHandlerOptions.Orderable | FieldHandlerOptions.AtEndOfStream);
     _valuesHandler = _fieldHandlerFactory.CreateFromType(type.GetGenericArguments()[1], FieldHandlerOptions.None);
     var writer = new ByteBufferWriter();
     writer.WriteFieldHandler(_keysHandler);
     writer.WriteFieldHandler(_valuesHandler);
     _configuration = writer.Data.ToByteArray();
     CreateConfiguration();
 }
Пример #31
0
        public NullableFieldHandler(IFieldHandlerFactory fieldHandlerFactory, ITypeConvertorGenerator typeConvertorGenerator, Type type)
        {
            _fieldHandlerFactory    = fieldHandlerFactory;
            _typeConvertorGenerator = typeConvertorGenerator;
            _type        = type;
            _itemHandler = _fieldHandlerFactory.CreateFromType(type.GetGenericArguments()[0], FieldHandlerOptions.None);
            if (_itemHandler.NeedsCtx())
            {
                throw new NotSupportedException("Nullable complex types are not supported.");
            }
            var writer = new SpanWriter();

            writer.WriteFieldHandler(_itemHandler);
            Configuration = writer.GetSpan().ToArray();
        }
Пример #32
0
        public ODBDictionaryFieldHandler(IObjectDB odb, Type type, IFieldHandlerFactory fieldHandlerFactory)
        {
            _odb = odb;
            _typeConvertGenerator = odb.TypeConvertorGenerator;
            _type        = type;
            _keysHandler = fieldHandlerFactory.CreateFromType(type.GetGenericArguments()[0],
                                                              FieldHandlerOptions.Orderable | FieldHandlerOptions.AtEndOfStream);
            _valuesHandler =
                fieldHandlerFactory.CreateFromType(type.GetGenericArguments()[1], FieldHandlerOptions.None);
            var writer = new SpanWriter();

            writer.WriteFieldHandler(_keysHandler);
            writer.WriteFieldHandler(_valuesHandler);
            _configuration = writer.GetSpan().ToArray();
            CreateConfiguration();
        }
Пример #33
0
 public static void GenerateLoadEx(this ITypeDescriptor descriptor, IILGen ilGenerator,
                                   Action <IILGen> pushReader, Action <IILGen> pushCtx, Action <IILGen> pushDescriptor, Type asType,
                                   ITypeConvertorGenerator convertorGenerator)
 {
     if (descriptor.StoredInline)
     {
         if (descriptor.LoadNeedsHelpWithConversion && asType != typeof(object))
         {
             var origType = descriptor.GetPreferredType();
             descriptor.GenerateLoad(ilGenerator, pushReader, pushCtx, pushDescriptor, origType);
             if (origType != asType)
             {
                 var conv = convertorGenerator.GenerateConversion(origType, asType);
                 if (conv == null)
                 {
                     throw new BTDBException("Don't know how to convert " + descriptor.Name + " from " +
                                             origType.ToSimpleName() + " to " + asType.ToSimpleName());
                 }
                 conv(ilGenerator);
             }
         }
         else
         {
             descriptor.GenerateLoad(ilGenerator, pushReader, pushCtx, pushDescriptor, asType);
         }
     }
     else
     {
         ilGenerator
         .Do(pushCtx)
         .Do(pushReader)
         .Callvirt(typeof(ITypeBinaryDeserializerContext).GetMethod(nameof(ITypeBinaryDeserializerContext.LoadObject)) !);
         if (asType != typeof(object))
         {
             ilGenerator.Call(typeof(TypeDescriptorExtensions).GetMethod(nameof(IntelligentCast)) !
                              .MakeGenericMethod(asType));
         }
     }
 }
Пример #34
0
        public RelationInfo(uint id, string name, IRelationInfoResolver relationInfoResolver, Type interfaceType,
                            Type clientType, IInternalObjectDBTransaction tr)
        {
            _id   = id;
            _name = name;
            _relationInfoResolver     = relationInfoResolver;
            _interfaceType            = interfaceType;
            _clientType               = clientType;
            ClientRelationVersionInfo = CreateVersionInfoByReflection();
            LoadVersionInfos(tr.KeyValueDBTransaction);
            ApartFields = FindApartFields(interfaceType, ClientRelationVersionInfo);
            if (LastPersistedVersion > 0 && RelationVersionInfo.Equal(_relationVersions[LastPersistedVersion], ClientRelationVersionInfo))
            {
                _relationVersions[LastPersistedVersion] = ClientRelationVersionInfo;
                ClientTypeVersion = LastPersistedVersion;
            }
            else
            {
                ClientTypeVersion = LastPersistedVersion + 1;
                _relationVersions.Add(ClientTypeVersion, ClientRelationVersionInfo);
                var writerk = new ByteBufferWriter();
                writerk.WriteByteArrayRaw(ObjectDB.RelationVersionsPrefix);
                writerk.WriteVUInt32(_id);
                writerk.WriteVUInt32(ClientTypeVersion);
                var writerv = new ByteBufferWriter();
                ClientRelationVersionInfo.Save(writerv);
                tr.KeyValueDBTransaction.SetKeyPrefix(ByteBuffer.NewEmpty());
                tr.KeyValueDBTransaction.CreateOrUpdateKeyValue(writerk.Data, writerv.Data);

                if (LastPersistedVersion > 0)
                {
                    CheckThatPrimaryKeyHasNotChanged(name, ClientRelationVersionInfo, _relationVersions[LastPersistedVersion]);
                    UpdateSecondaryKeys(tr, ClientRelationVersionInfo, _relationVersions[LastPersistedVersion]);
                }
            }
            _typeConvertorGenerator = tr.Owner.TypeConvertorGenerator;
        }
Пример #35
0
 ListTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, ITypeDescriptor itemDesc)
 {
     _convertorGenerator = typeSerializers.ConvertorGenerator;
     _typeSerializers = typeSerializers;
     InitFromItemDescriptor(itemDesc);
 }
Пример #36
0
 public RelationInfoResolver(ObjectDB objectDB)
 {
     _fieldHandlerFactory    = objectDB.FieldHandlerFactory;
     _typeConvertorGenerator = objectDB.TypeConvertorGenerator;
 }
Пример #37
0
 public DictionaryTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, AbstractBufferedReader reader, Func<AbstractBufferedReader, ITypeDescriptor> nestedDescriptorReader)
 {
     _convertorGenerator = typeSerializers.ConvertorGenerator;
     _typeSerializers = typeSerializers;
     InitFromKeyValueDescriptors(nestedDescriptorReader(reader), nestedDescriptorReader(reader));
 }
Пример #38
0
 public ListTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, AbstractBufferedReader reader, Func<AbstractBufferedReader, ITypeDescriptor> nestedDescriptorReader)
 {
     _convertorGenerator = typeSerializers.ConvertorGenerator;
     _typeSerializers = typeSerializers;
     InitFromItemDescriptor(nestedDescriptorReader(reader));
 }
Пример #39
0
 public RelationInfoResolver(ObjectDB objectDB)
 {
     _fieldHandlerFactory = objectDB.FieldHandlerFactory;
     _typeConvertorGenerator = objectDB.TypeConvertorGenerator;
 }
Пример #40
0
 DictionaryTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, ITypeDescriptor keyDesc, ITypeDescriptor valueDesc)
 {
     _convertorGenerator = typeSerializers.ConvertorGenerator;
     _typeSerializers    = typeSerializers;
     InitFromKeyValueDescriptors(keyDesc, valueDesc);
 }
Пример #41
0
 ListTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, ITypeDescriptor itemDesc)
 {
     _convertorGenerator = typeSerializers.ConvertorGenerator;
     _typeSerializers    = typeSerializers;
     InitFromItemDescriptor(itemDesc);
 }
Пример #42
0
 public ListTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, AbstractBufferedReader reader, Func <AbstractBufferedReader, ITypeDescriptor> nestedDescriptorReader)
 {
     _convertorGenerator = typeSerializers.ConvertorGenerator;
     _typeSerializers    = typeSerializers;
     InitFromItemDescriptor(nestedDescriptorReader(reader));
 }
Пример #43
0
 DictionaryTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, ITypeDescriptor keyDesc, ITypeDescriptor valueDesc)
 {
     _convertorGenerator = typeSerializers.ConvertorGenerator;
     _typeSerializers = typeSerializers;
     InitFromKeyValueDescriptors(keyDesc, valueDesc);
 }
Пример #44
0
 public DictionaryTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, AbstractBufferedReader reader, Func <AbstractBufferedReader, ITypeDescriptor> nestedDescriptorReader)
 {
     _convertorGenerator = typeSerializers.ConvertorGenerator;
     _typeSerializers    = typeSerializers;
     InitFromKeyValueDescriptors(nestedDescriptorReader(reader), nestedDescriptorReader(reader));
 }