Quantcast
Channel: ASPNETWebStack Issue Tracker Rss Feed
Viewing all articles
Browse latest Browse all 7215

Edited Issue: Collection property deserialization doesn't work [422]

$
0
0
When send back with collection property data in entity payload, it reports error: no collection property support yet.

> System.Web.Http.OData.dll!System.Web.Http.OData.Formatter.Deserialization.ODataEntryDeserializer.ConvertCollectionValue(Microsoft.Data.OData.ODataCollectionValue collection, Microsoft.Data.Edm.IEdmTypeReference propertyType, System.Web.Http.OData.Formatter.Deserialization.ODataDeserializerProvider deserializerProvider, System.Web.Http.OData.Formatter.Deserialization.ODataDeserializerContext readContext) Line 288 C#
System.Web.Http.OData.dll!System.Web.Http.OData.Formatter.Deserialization.ODataEntryDeserializer.ConvertValue(object oDataValue, ref Microsoft.Data.Edm.IEdmTypeReference propertyType, System.Web.Http.OData.Formatter.Deserialization.ODataDeserializerProvider deserializerProvider, System.Web.Http.OData.Formatter.Deserialization.ODataDeserializerContext readContext, out Microsoft.Data.Edm.EdmTypeKind typeKind) Line 152 C#
System.Web.Http.OData.dll!System.Web.Http.OData.Formatter.Deserialization.ODataEntryDeserializer.ApplyProperty(Microsoft.Data.OData.ODataProperty property, Microsoft.Data.Edm.IEdmStructuredTypeReference resourceType, object resource, System.Web.Http.OData.Formatter.Deserialization.ODataDeserializerProvider deserializerProvider, System.Web.Http.OData.Formatter.Deserialization.ODataDeserializerContext readContext) Line 107 C#
System.Web.Http.OData.dll!System.Web.Http.OData.Formatter.Deserialization.ODataEntityDeserializer.ApplyValueProperties(Microsoft.Data.OData.ODataEntry entry, Microsoft.Data.Edm.IEdmStructuredTypeReference entityType, object entityResource, System.Web.Http.OData.Formatter.Deserialization.ODataDeserializerContext readContext) Line 308 C#
System.Web.Http.OData.dll!System.Web.Http.OData.Formatter.Deserialization.ODataEntityDeserializer.ApplyEntityProperties(Microsoft.Data.OData.ODataEntry entry, System.Web.Http.OData.Formatter.Deserialization.ODataEntryAnnotation entryAnnotation, System.Web.Http.OData.Formatter.Deserialization.ODataDeserializerContext readContext) Line 224 C#
System.Web.Http.OData.dll!System.Web.Http.OData.Formatter.Deserialization.ODataEntityDeserializer.ReadInline(Microsoft.Data.OData.ODataEntry entry, System.Web.Http.OData.Formatter.Deserialization.ODataDeserializerContext readContext) Line 57 C#
System.Web.Http.OData.dll!System.Web.Http.OData.Formatter.Deserialization.ODataEntityDeserializer.Read(Microsoft.Data.OData.ODataMessageReader messageReader, System.Web.Http.OData.Formatter.Deserialization.ODataDeserializerContext readContext) Line 41 C#
System.Web.Http.OData.dll!System.Web.Http.OData.Formatter.ODataMediaTypeFormatter.ReadFromStreamAsync(System.Type type, System.IO.Stream readStream, System.Net.Http.HttpContent content, System.Net.Http.Formatting.IFormatterLogger formatterLogger) Line 191 C#
System.Net.Http.Formatting.dll!System.Net.Http.HttpContentExtensions.ReadAsAsync<object>.AnonymousMethod__0(System.IO.Stream stream)
System.Net.Http.Formatting.dll!System.Threading.Tasks.TaskHelpersExtensions.Then<System.__Canon,System.__Canon>.AnonymousMethod__40(System.Threading.Tasks.Task<System.__Canon> t)
System.Net.Http.Formatting.dll!System.Threading.Tasks.TaskHelpersExtensions.ThenImpl<System.Threading.Tasks.Task<System.IO.Stream>,object>(System.Threading.Tasks.Task<System.IO.Stream> task, System.Func<System.Threading.Tasks.Task<System.IO.Stream>,System.Threading.Tasks.Task<object>> continuation, System.Threading.CancellationToken cancellationToken, bool runSynchronously)
System.Net.Http.Formatting.dll!System.Net.Http.HttpContentExtensions.ReadAsAsync<object>(System.Net.Http.HttpContent content, System.Type type, System.Collections.Generic.IEnumerable<System.Net.Http.Formatting.MediaTypeFormatter> formatters, System.Net.Http.Formatting.IFormatterLogger formatterLogger)
System.Net.Http.Formatting.dll!System.Net.Http.HttpContentExtensions.ReadAsAsync(System.Net.Http.HttpContent content, System.Type type, System.Collections.Generic.IEnumerable<System.Net.Http.Formatting.MediaTypeFormatter> formatters, System.Net.Http.Formatting.IFormatterLogger formatterLogger)
System.Web.Http.dll!System.Web.Http.ModelBinding.FormatterParameterBinding.ExecuteBindingAsync(System.Web.Http.Metadata.ModelMetadataProvider metadataProvider, System.Web.Http.Controllers.HttpActionContext actionContext, System.Threading.CancellationToken cancellationToken)
System.Web.Http.dll!System.Web.Http.Controllers.HttpActionBinding.ExecuteBindingAsync.AnonymousMethod__0(System.Web.Http.Controllers.HttpParameterBinding parameterBinder)
System.Core.dll!System.Linq.Enumerable.WhereSelectArrayIterator<System.__Canon,System.__Canon>.MoveNext()
System.Web.Http.dll!System.Threading.Tasks.TaskHelpers.IterateImpl(System.Collections.Generic.IEnumerator<System.Threading.Tasks.Task> enumerator, System.Threading.CancellationToken cancellationToken)
System.Web.Http.dll!System.Threading.Tasks.TaskHelpers.Iterate(System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task> asyncIterator, System.Threading.CancellationToken cancellationToken, bool disposeEnumerator)
System.Web.Http.dll!System.Web.Http.Controllers.HttpActionBinding.ExecuteBindingAsync(System.Web.Http.Controllers.HttpActionContext actionContext, System.Threading.CancellationToken cancellationToken)
System.Web.Http.dll!System.Web.Http.ApiController.ExecuteAsync.AnonymousMethod__0()
System.Web.Http.dll!System.Web.Http.ApiController.ExecuteAsync(System.Web.Http.Controllers.HttpControllerContext controllerContext, System.Threading.CancellationToken cancellationToken)
System.Web.Http.dll!System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
System.Net.Http.dll!System.Net.Http.HttpMessageInvoker.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
System.Web.Http.dll!System.Web.Http.Dispatcher.HttpRoutingDispatcher.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
System.Web.Http.dll!System.Web.Http.HttpServer.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
System.Web.Http.SelfHost.dll!System.Web.Http.SelfHost.HttpSelfHostServer.ProcessRequestContext(System.Web.Http.SelfHost.HttpSelfHostServer.ChannelContext channelContext, System.ServiceModel.Channels.RequestContext requestContext)
System.Web.Http.SelfHost.dll!System.Web.Http.SelfHost.HttpSelfHostServer.ReceiveRequestContextComplete(System.IAsyncResult result)
System.ServiceModel.Internals.dll!System.Runtime.AsyncResult.Complete(bool completedSynchronously)
System.ServiceModel.Internals.dll!System.Runtime.InputQueue<System.ServiceModel.Channels.RequestContext>.AsyncQueueReader.Set(System.Runtime.InputQueue<System.ServiceModel.Channels.RequestContext>.Item item)
System.ServiceModel.Internals.dll!System.Runtime.InputQueue<System.ServiceModel.Channels.RequestContext>.EnqueueAndDispatch(System.Runtime.InputQueue<System.ServiceModel.Channels.RequestContext>.Item item, bool canDispatchOnThisThread)
System.ServiceModel.Internals.dll!System.Runtime.InputQueue<System.ServiceModel.Channels.RequestContext>.EnqueueAndDispatch(System.ServiceModel.Channels.RequestContext item, System.Action dequeuedCallback, bool canDispatchOnThisThread)
System.ServiceModel.dll!System.ServiceModel.Channels.SingletonChannelAcceptor<System.ServiceModel.Channels.IReplyChannel,System.ServiceModel.Channels.ReplyChannel,System.ServiceModel.Channels.RequestContext>.Enqueue(System.ServiceModel.Channels.RequestContext item, System.Action dequeuedCallback, bool canDispatchOnThisThread)
System.ServiceModel.dll!System.ServiceModel.Channels.HttpPipeline.EnqueueMessageAsyncResult.CompleteParseAndEnqueue(System.IAsyncResult result)
System.ServiceModel.dll!System.ServiceModel.Channels.HttpPipeline.EnqueueMessageAsyncResult.HandleParseIncomingMessage(System.IAsyncResult result)
System.ServiceModel.Internals.dll!System.Runtime.AsyncResult.AsyncCompletionWrapperCallback(System.IAsyncResult result)
System.ServiceModel.Internals.dll!System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(System.IAsyncResult result)
System.ServiceModel.Internals.dll!System.Runtime.AsyncResult.Complete(bool completedSynchronously)
System.ServiceModel.dll!System.ServiceModel.Channels.HttpInput.ParseMessageAsyncResult.OnRead(System.IAsyncResult result)
System.ServiceModel.Internals.dll!System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(System.IAsyncResult result)
System.dll!System.Net.LazyAsyncResult.Complete(System.IntPtr userToken)
System.dll!System.Net.HttpRequestStream.HttpRequestStreamAsyncResult.IOCompleted(System.Net.HttpRequestStream.HttpRequestStreamAsyncResult asyncResult, uint errorCode, uint numBytes)
mscorlib.dll!System.Threading._IOCompletionCallback.PerformIOCompletionCallback(uint errorCode, uint numBytes, System.Threading.NativeOverlapped* pOVERLAP)

The code causing the problem is:
Contract.Assert(propertyKind != EdmTypeKind.Primitive, "no collection property support yet.");

We should remove the assert code as we are support collection property now.


Viewing all articles
Browse latest Browse all 7215

Trending Articles