Пример #1
0
        /// <summary>
        /// Writes the entity result to the response message asynchronously.
        /// </summary>
        /// <param name="graph">The entity result to write.</param>
        /// <param name="type">The type of the entity.</param>
        /// <param name="messageWriter">The message writer.</param>
        /// <param name="writeContext">The writing context.</param>
        /// <returns>A task representing the asynchronous operation.</returns>
        public override Task WriteObjectAsync(
            object graph,
            Type type,
            ODataMessageWriter messageWriter,
            ODataSerializerContext writeContext)
        {
            RawResult rawResult = graph as RawResult;

            if (rawResult != null)
            {
                graph = rawResult.Result;
                type  = rawResult.Type;
            }

            if (writeContext != null)
            {
                graph = RestierPrimitiveSerializer.ConvertToPayloadValue(graph, writeContext, payloadValueConverter);
            }

            if (graph == null)
            {
                // This is to make ODataRawValueSerializer happily serialize null value.
                graph = string.Empty;
            }

            return(base.WriteObjectAsync(graph, type, messageWriter, writeContext));
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="DefaultRestierSerializerProvider" /> class.
        /// </summary>
        /// <param name="rootContainer">The container to get the service.</param>
        /// <param name="payloadValueConverter">The OData payload value converter to use.</param>
        public DefaultRestierSerializerProvider(IServiceProvider rootContainer, ODataPayloadValueConverter payloadValueConverter)
            : base(rootContainer)
        {
            Ensure.NotNull(rootContainer, nameof(rootContainer));
            Ensure.NotNull(payloadValueConverter, nameof(payloadValueConverter));

            this.resourceSetSerializer = new RestierResourceSetSerializer(this);
            this.primitiveSerializer   = new RestierPrimitiveSerializer(payloadValueConverter);
            this.rawSerializer         = new RestierRawSerializer(payloadValueConverter);
            this.resourceSerializer    = new RestierResourceSerializer(this);
            this.collectionSerializer  = new RestierCollectionSerializer(this);
            this.enumSerializer        = new RestierEnumSerializer(this);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="DefaultRestierSerializerProvider" /> class.
 /// </summary>
 public CustomizedSerializerProvider(IServiceProvider serviceProvider) : base(serviceProvider)
 {
     this.primitiveSerializer = new CustomizedPrimitiveSerializer();
 }
Пример #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DefaultRestierSerializerProvider" /> class.
 /// </summary>
 public CustomizedSerializerProvider()
 {
     this.primitiveSerializer = new CustomizedPrimitiveSerializer();
 }