Exemplo n.º 1
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();
        }
Exemplo n.º 2
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();
        }
Exemplo n.º 3
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();
        }
Exemplo n.º 4
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();
        }