/// <summary> /// Initializes a new instance of the <see cref="ODataMaterializer" /> class. /// </summary> /// <param name="materializerContext">The materializer context.</param> /// <param name="expectedType">The expected type.</param> protected ODataMaterializer(IODataMaterializerContext materializerContext, Type expectedType) { this.ExpectedType = expectedType; this.MaterializerContext = materializerContext; this.nextLinkTable = new Dictionary <IEnumerable, DataServiceQueryContinuation>(DSClient.ReferenceEqualityComparer <IEnumerable> .Instance); this.lazyPrimitivePropertyConverter = new DSClient.SimpleLazy <PrimitivePropertyConverter>(() => new PrimitivePropertyConverter(this.Format)); this.primitiveValueMaterializationPolicy = new PrimitiveValueMaterializationPolicy(this.MaterializerContext, this.lazyPrimitivePropertyConverter); this.collectionValueMaterializationPolicy = new CollectionValueMaterializationPolicy(this.MaterializerContext, this.primitiveValueMaterializationPolicy); this.complexValueMaterializerPolicy = new ComplexValueMaterializationPolicy(this.MaterializerContext, this.lazyPrimitivePropertyConverter); this.collectionValueMaterializationPolicy.ComplexValueMaterializationPolicy = this.complexValueMaterializerPolicy; this.complexValueMaterializerPolicy.CollectionValueMaterializationPolicy = this.collectionValueMaterializationPolicy; }
/// <summary> /// Initializes a new instance of the <see cref="CollectionValueMaterializationPolicy" /> class. /// </summary> /// <param name="context">The context.</param> /// <param name="primitivePolicy">The primitive policy.</param> internal CollectionValueMaterializationPolicy(IODataMaterializerContext context, PrimitiveValueMaterializationPolicy primitivePolicy) { this.materializerContext = context; this.primitiveValueMaterializationPolicy = primitivePolicy; }