c# – 在Web Api项目中阅读CollectionJson内容

c# – 在Web Api项目中阅读CollectionJson内容,第1张

概述我有一个与 Conference API project类似的项目(几乎相同),它采用与返回CollectionJson内容的着名项目类似的方法.我很难设置ReadDocument的Collection属性(第30行),因为它没有任何setter.我可以通过执行以下更改来绕过此问题 public CollectionJsonContent(Collection collection){ 我有一个与 Conference API project类似的项目(几乎相同),它采用与返回Collectionjson内容的着名项目类似的方法.我很难设置Readdocument的Collection属性(第30行),因为它没有任何setter.我可以通过执行以下更改来绕过此问题

public CollectionjsonContent(Collection collection){    var serializerSettings = new JsonSerializerSettings        {            NullValueHandling = NullValueHandling.Ignore,Formatting = Newtonsoft.Json.Formatting.Indented,ContractResolver = new CamelCasePropertynamesContractResolver()        };    collection.Version = "1.0";    headers.ContentType = new MediaTypeheaderValue("application/vnd.collection+Json");    using (var writer = new JsonTextWriter(new StreamWriter(_memoryStream)){CloSEOutput = false})    {        //var readdocument = new Readdocument(); {IReaddocument.Collection = collection};        var serializer = JsonSerializer.Create(serializerSettings);        serializer.Serialize(writer,collection);        writer.Flush();    }    _memoryStream.position = 0;}

虽然上面的代码编译并在某种程度上解决了问题但是我将再次遇到另一个问题,即无法在我的控制器单元测试中使用JsonCollection内容.请考虑以下单元测试代码段:

using (var request = CreateRequest())            {                                var controller = new TestController(DataService) {Request = request};                var temp = await controller.ListAsync(grIDSearchData,sampleSearchData);                if ((temp is NotFoundResult) && (sampleCollection.Any()))                {                    Assert.Fail("Controller dID not return any result but query dID");                }                var Json = await temp.ExecuteAsync(cancellationTokenSource);                var readdocument = Json.Content.ReadAsAsync<Readdocument>(new[] {new CollectionjsonFormatter()},cancellationTokenSource).Result;         }

由于我没有设置Readdocument的集合属性,因此readdocument始终为空,我无法读取其内容.
如何在WEB API项目中异步读取客户端JsonCollection的内容?

要了解方法的清晰图片,请查看Conference Web Api
和authors blog

解决方法 好的,这已经修好了. Collection属性现在可以再次设置.

我刚刚用这个修复程序推动了release 0.7.0,一个主要的命名重构以及对序列化的一个很好的改进,而不是写出空集合.

请参阅release notes以了解更改(特别是命名,因为包名称和命名空间已更改)

总结

以上是内存溢出为你收集整理的c# – 在Web Api项目中阅读CollectionJson内容全部内容,希望文章能够帮你解决c# – 在Web Api项目中阅读CollectionJson内容所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1230862.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存