private ComplexValueMaterializationPolicy CreatePrimitiveValueMaterializationPolicy(TestMaterializerContext context) { var lazyPrimitivePropertyConverter = new Microsoft.OData.Client.SimpleLazy <PrimitivePropertyConverter>(() => new PrimitivePropertyConverter(ODataFormat.Json)); var primitiveValueMaterializerPolicy = new PrimitiveValueMaterializationPolicy(context, lazyPrimitivePropertyConverter); var complexPolicy = new ComplexValueMaterializationPolicy(context, lazyPrimitivePropertyConverter); var collectionPolicy = new CollectionValueMaterializationPolicy(context, primitiveValueMaterializerPolicy); var intanceAnnotationPolicy = new InstanceAnnotationMaterializationPolicy(context); collectionPolicy.ComplexValueMaterializationPolicy = complexPolicy; complexPolicy.CollectionValueMaterializationPolicy = collectionPolicy; complexPolicy.InstanceAnnotationMaterializationPolicy = intanceAnnotationPolicy; return(complexPolicy); }
internal EntryValueMaterializationPolicy CreateEntryMaterializationPolicy(TestMaterializerContext materializerContext = null) { var clientEdmModel = new ClientEdmModel(ODataProtocolVersion.V4); var context = new DataServiceContext(); materializerContext = materializerContext ?? new TestMaterializerContext() { Model = clientEdmModel, Context = context }; var adapter = new EntityTrackingAdapter(new TestEntityTracker(), MergeOption.OverwriteChanges, clientEdmModel, context); var lazyPrimitivePropertyConverter = new Microsoft.OData.Client.SimpleLazy <PrimitivePropertyConverter>(() => new PrimitivePropertyConverter()); var primitiveValueMaterializerPolicy = new PrimitiveValueMaterializationPolicy(materializerContext, lazyPrimitivePropertyConverter); var entryPolicy = new EntryValueMaterializationPolicy(materializerContext, adapter, lazyPrimitivePropertyConverter, null); var collectionPolicy = new CollectionValueMaterializationPolicy(materializerContext, primitiveValueMaterializerPolicy); var intanceAnnotationPolicy = new InstanceAnnotationMaterializationPolicy(materializerContext); entryPolicy.CollectionValueMaterializationPolicy = collectionPolicy; entryPolicy.InstanceAnnotationMaterializationPolicy = intanceAnnotationPolicy; return(entryPolicy); }