当前位置: 首页>>代码示例>>C#>>正文


C# IBsonSerializer类代码示例

本文整理汇总了C#中IBsonSerializer的典型用法代码示例。如果您正苦于以下问题:C# IBsonSerializer类的具体用法?C# IBsonSerializer怎么用?C# IBsonSerializer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


IBsonSerializer类属于命名空间,在下文中一共展示了IBsonSerializer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: BsonSerializationInfo

 // constructors
 /// <summary>
 /// Initializes a new instance of the BsonSerializationInfo class.
 /// </summary>
 /// <param name="elementName">The element name.</param>
 /// <param name="serializer">The serializer.</param>
 /// <param name="nominalType">The nominal type.</param>
 /// <param name="serializationOptions">The serialization options.</param>
 public BsonSerializationInfo(string elementName, IBsonSerializer serializer, Type nominalType, IBsonSerializationOptions serializationOptions)
 {
     _elementName = elementName;
     _serializer = serializer;
     _nominalType = nominalType;
     _serializationOptions = serializationOptions;
 }
开发者ID:horizon3d,项目名称:SequoiaDB,代码行数:15,代码来源:BsonSerializationInfo.cs

示例2: BaseBsonSerializer

 protected BaseBsonSerializer(Type documentType, IBsonSerializer serializer, IMongoDbProvider mongoDbProvider, IIdentifierFinder identifierFinder)
 {
     IdentifierFinder = identifierFinder;
     DocumentType = documentType;
     Serializer = serializer;
     MongoDbProvider = mongoDbProvider;
 }
开发者ID:virajs,项目名称:MongoDB-Mapping-Attributes,代码行数:7,代码来源:BaseBsonSerializer.cs

示例3: BsonMigrationSerializer

 public BsonMigrationSerializer(IBsonSerializer versionSerializer, IVersionDetectionStrategy versionDetectionStrategy, BsonClassMap classMap)
     : base(classMap)
 {
     _versionSerializer = versionSerializer;
     _versionDetectionStrategy = versionDetectionStrategy;
     _migrations = ExtractMigrations(classMap.ClassType);
 }
开发者ID:RasmusTG,项目名称:mongo-csharp-migrations,代码行数:7,代码来源:BsonMigrationSerializer.cs

示例4: InsertRequest

 /// <summary>
 /// Initializes a new instance of the <see cref="InsertRequest" /> class.
 /// </summary>
 /// <param name="nominalType">Type nominal type.</param>
 /// <param name="document">The document.</param>
 /// <param name="serializer">The serializer.</param>
 public InsertRequest(Type nominalType, object document, IBsonSerializer serializer)
     : base(WriteRequestType.Insert)
 {
     _nominalType = nominalType;
     _document = document;
     _serializer = serializer;
 }
开发者ID:Bogdan0x400,项目名称:mongo-csharp-driver,代码行数:13,代码来源:InsertRequest.cs

示例5: FieldExpression

 public FieldExpression(Expression document, string fieldName, IBsonSerializer serializer, Expression original)
 {
     _document = document;
     _fieldName = Ensure.IsNotNull(fieldName, nameof(fieldName));
     _serializer = Ensure.IsNotNull(serializer, nameof(serializer));
     _original = original;
 }
开发者ID:RavenZZ,项目名称:MDRelation,代码行数:7,代码来源:FieldExpression.cs

示例6: Apply

        // protected methods
        /// <summary>
        /// Reconfigures the specified serializer by applying this attribute to it.
        /// </summary>
        /// <param name="serializer">The serializer.</param>
        /// <returns>A reconfigured serializer.</returns>
        protected override IBsonSerializer Apply(IBsonSerializer serializer)
        {
            var representationConfigurable = serializer as IRepresentationConfigurable;
            if (representationConfigurable != null)
            {
                var reconfiguredSerializer = representationConfigurable.WithRepresentation(_representation);

                var converterConfigurable = reconfiguredSerializer as IRepresentationConverterConfigurable;
                if (converterConfigurable != null)
                {
                    var converter = new RepresentationConverter(_allowOverflow, _allowTruncation);
                    reconfiguredSerializer = converterConfigurable.WithConverter(converter);
                }

                return reconfiguredSerializer;
            }

            // for backward compatibility representations of Array and Document are mapped to DictionaryRepresentations if possible
            var dictionaryRepresentationConfigurable = serializer as IDictionaryRepresentationConfigurable;
            if (dictionaryRepresentationConfigurable != null)
            {
                if (_representation == BsonType.Array || _representation == BsonType.Document)
                {
                    var dictionaryRepresentation = (_representation == BsonType.Array) ? DictionaryRepresentation.ArrayOfArrays: DictionaryRepresentation.Document;
                    return dictionaryRepresentationConfigurable.WithDictionaryRepresentation(dictionaryRepresentation);
                }
            }

            return base.Apply(serializer);
        }
开发者ID:Bogdan0x400,项目名称:mongo-csharp-driver,代码行数:36,代码来源:BsonRepresentationAttribute.cs

示例7: ArrayIndexExpression

 public ArrayIndexExpression(Expression array, Expression index, IBsonSerializer serializer, Expression original)
 {
     _array = Ensure.IsNotNull(array, nameof(array));
     _index = Ensure.IsNotNull(index, nameof(index));
     _serializer = Ensure.IsNotNull(serializer, nameof(serializer));
     _original = original;
 }
开发者ID:RavenZZ,项目名称:MDRelation,代码行数:7,代码来源:ArrayIndexExpression.cs

示例8: RegisterExpressionSerializer

 /// <summary>
 /// Registers a serializer with the given expression.
 /// </summary>
 /// <param name="node">The expression.</param>
 /// <param name="serializer">The serializer.</param>
 public void RegisterExpressionSerializer(Expression node, IBsonSerializer serializer)
 {
     _serializationInfoCache[node] = new BsonSerializationInfo(
         null,
         serializer,
         node.Type);
 }
开发者ID:Bogdan0x400,项目名称:mongo-csharp-driver,代码行数:12,代码来源:BsonSerializationInfoHelper.cs

示例9: ApplyAttribute

        // public methods
        /// <summary>
        /// Apply an attribute to these serialization options and modify the options accordingly.
        /// </summary>
        /// <param name="serializer">The serializer that these serialization options are for.</param>
        /// <param name="attribute">The serialization options attribute.</param>
        public override void ApplyAttribute(IBsonSerializer serializer, Attribute attribute)
        {
            EnsureNotFrozen();
            var itemSerializer = serializer.GetItemSerializationInfo().Serializer;
            if (_itemSerializationOptions == null)
            {
                var itemDefaultSerializationOptions = itemSerializer.GetDefaultSerializationOptions();

                // special case for legacy collections: allow BsonRepresentation on object
                if (itemDefaultSerializationOptions == null &&
                    (serializer.GetType() == typeof(EnumerableSerializer) || serializer.GetType() == typeof(QueueSerializer) || serializer.GetType() == typeof(StackSerializer)) &&
                    attribute.GetType() == typeof(BsonRepresentationAttribute))
                {
                    itemDefaultSerializationOptions = new RepresentationSerializationOptions(BsonType.Null); // will be modified later by ApplyAttribute
                }

                if (itemDefaultSerializationOptions == null)
                {
                    var message = string.Format(
                        "A serialization options attribute of type {0} cannot be used when the serializer is of type {1} and the item serializer is of type {2}.",
                        BsonUtils.GetFriendlyTypeName(attribute.GetType()),
                        BsonUtils.GetFriendlyTypeName(serializer.GetType()),
                        BsonUtils.GetFriendlyTypeName(itemSerializer.GetType()));
                    throw new NotSupportedException(message);
                }

                _itemSerializationOptions = itemDefaultSerializationOptions.Clone();
            }
            _itemSerializationOptions.ApplyAttribute(itemSerializer, attribute);
        }
开发者ID:ncipollina,项目名称:mongo-csharp-driver,代码行数:36,代码来源:ArraySerializationOptions.cs

示例10: CreateListSerializer

 public static IBsonSerializer CreateListSerializer(IBsonSerializer itemSerializer)
 {
     var implementationType = typeof(List<>).MakeGenericType(itemSerializer.ValueType);
     return (IBsonSerializer)Activator.CreateInstance(
         typeof(EnumerableInterfaceImplementerSerializer<>).MakeGenericType(
             implementationType),
         itemSerializer);
 }
开发者ID:mfidemraizer,项目名称:mongo-csharp-driver,代码行数:8,代码来源:SerializerHelper.cs

示例11: RegisterExpressionSerializer

 /// <summary>
 /// Registers a serializer with the given expression.
 /// </summary>
 /// <param name="node">The expression.</param>
 /// <param name="serializer">The serializer.</param>
 public void RegisterExpressionSerializer(Expression node, IBsonSerializer serializer)
 {
     _serializationInfoCache[node] = new BsonSerializationInfo(
         null,
         serializer,
         node.Type,
         serializer.GetDefaultSerializationOptions());
 }
开发者ID:ningliaoyuan,项目名称:mongo-csharp-driver,代码行数:13,代码来源:BsonSerializationInfoHelper.cs

示例12: AccumulatorExpression

 public AccumulatorExpression(Type type, string fieldName, IBsonSerializer serializer, AccumulatorType accumulatorType, Expression argument)
 {
     _type = Ensure.IsNotNull(type, nameof(type));
     _fieldName = Ensure.IsNotNull(fieldName, nameof(fieldName));
     _serializer = Ensure.IsNotNull(serializer, nameof(serializer));
     _accumulatorType = accumulatorType;
     _argument = Ensure.IsNotNull(argument, nameof(argument));
 }
开发者ID:RavenZZ,项目名称:MDRelation,代码行数:8,代码来源:AccumulatorExpression.cs

示例13: TryFindSerializer

        public static bool TryFindSerializer(Expression node, Type type, out IBsonSerializer serializer)
        {
            var finder = new PreviouslyUsedSerializerFinder(type);
            finder.Visit(node);

            serializer = finder._serializer;
            return serializer != null;
        }
开发者ID:RavenZZ,项目名称:MDRelation,代码行数:8,代码来源:PreviouslyUsedSerializerFinder.cs

示例14: AggregateResultOperator

        public AggregateResultOperator(Expression seed, Expression reducer, Expression finalizer, string itemName, IBsonSerializer serializer)
        {
            _seed = Ensure.IsNotNull(seed, nameof(seed));
            _reducer = Ensure.IsNotNull(reducer, nameof(reducer));
            _serializer = Ensure.IsNotNull(serializer, nameof(serializer));

            _finalizer = finalizer;
            _itemName = itemName;
        }
开发者ID:mfidemraizer,项目名称:mongo-csharp-driver,代码行数:9,代码来源:AggregateResultOperator.cs

示例15: ConfigureChildSerializer

        private IBsonSerializer ConfigureChildSerializer(IChildSerializerConfigurable configurable, IBsonSerializer childSerializer)
        {
            var childConfigurable = configurable.ChildSerializer as IChildSerializerConfigurable;
            if (childConfigurable != null)
            {
                childSerializer = ConfigureChildSerializer(childConfigurable, childSerializer);
            }

            return configurable.WithChildSerializer(childSerializer);
        }
开发者ID:robblovell,项目名称:mongo-csharp-driver,代码行数:10,代码来源:SerializerBuilder.cs


注:本文中的IBsonSerializer类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。