相关疑难解决方法(0)

.Net Core 3.0中IMvcBuilder AddJsonOptions放在哪里?

我刚刚将我的ASP Web API项目从.Net core 2.0升级到3.0。我在用

     services.AddMvc()
             .AddJsonOptions(options =>options.SerializerSettings.ContractResolver 
                                       = new DefaultContractResolver());
Run Code Online (Sandbox Code Playgroud)

以前是为了确保序列化JSON的小写字母。

升级到3.0后,出现此错误...

错误CS1061'IMvcBuilder'不包含'AddJsonOptions'的定义,找不到可以接受的扩展方法'AddJsonOptions'接受类型为'IMvcBuilder'的第一个参数(是否缺少using指令或程序集引用?)

根据Asp.Net Core 2.2中MvcJsonOptions的AddJsonOptions,Microsoft.AspNetCore.Mvc.Formatters.Json nuget包提供了AddJsonOptions扩展方法。我尝试安装/重新安装此程序,但仍然无法解决该方法。有趣的是,智能感知仅显示Microsoft.AspNetCore.Mvc.Formatters。即使我添加了Json nuget包,当我尝试添加using语句时也使用Xml

有什么想法吗?该文档AddJsonOptions只上升到.NET 2.2所以也许是方法已经在3.0赞成一些其他配置机制的被弃用?

asp.net json.net asp.net-core asp.net-core-3.0

35
推荐指数
5
解决办法
1万
查看次数

Json.NET是否缓存类型的序列化信息?

在.NET世界中,当谈到对象序列化时,它通常用于在运行时检查对象的字段和属性.对此作业使用反射通常很慢,并且在处理大量对象时是不合需要的.另一种方法是使用IL发射或构建表达树,这些表现树相对于反射提供显着的性能增益.而后者是处理序列化时最现代化的库.但是,在运行时构建和发送IL需要花费时间,并且只有在将此信息缓存并重用于相同类型的对象时才会回收投资.

当使用Json.NET时,我不清楚使用上述哪种方法,如果确实使用了后者,是否使用了缓存.

例如,当我这样做时:

JsonConvert.SerializeObject(new Foo { value = 1 });
Run Code Online (Sandbox Code Playgroud)

Json.NET是否构建了Foo的成员访问信息并缓存以便以后重用它?

c# serialization json expression-trees json.net

24
推荐指数
1
解决办法
4832
查看次数

.net核心:不完整的JSON响应

我正在尝试构建简单的API用于培训,在我的数据库中我获得了用户(名字,姓氏,电子邮件密码list<sports>)和体育(名称,用户ID).一切都没关系,当我想要获得我的用户时,我得到了一个填充了体育的对象.但是JSON响应是不完整的,它在中间被"切断".

[{"firstName":"Nicolas","lastName":"Bouhours","email":"n.bouh@test.com","password":"nico@hotmail.fr","sports":[{"name":"Trail","userId":1
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

// GET: api/Users
[HttpGet]
public IEnumerable<User> GetUsers()
{
    var users = _context.Users.Include(u => u.Sports).ToList();
    return users;
}
Run Code Online (Sandbox Code Playgroud)

我的模特:

public class Sport : BaseEntity
{
    public string Name { get; set; }

    public int UserId { get; set; }
    public User User { get; set; }
}

public class User : BaseEntity
{
    public String FirstName { get; set; }
    public String LastName { get; set; }
    public String Email { get; set; }
    public String …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core-mvc .net-core asp.net-core

15
推荐指数
2
解决办法
4571
查看次数

设置JsonConvert.DefaultSettings asp net core 2.0不能按预期工作

我在Startup.cs中有以下代码,并期望它覆盖默认的序列化选项.我希望它覆盖我的asp net core 2.0项目中的每一个序列化,但是动作返回值不正确,我认为这个全局属性在core 2.0中不起作用

我把它写在app.UseMvc()之前的配置中;

JsonConvert.DefaultSettings = () => new JsonSerializerSettings
            {
                Formatting = Formatting.Indented,
                TypeNameHandling = TypeNameHandling.Objects,
                ContractResolver = new CamelCasePropertyNamesContractResolver(),
                Converters = new List<JsonConverter> { new StringEnumConverter() }
            };
Run Code Online (Sandbox Code Playgroud)

c# json asp.net-web-api asp.net-core-2.0

6
推荐指数
1
解决办法
5350
查看次数

Asp.Net Core Web API 2.2控制器未返回完整的JSON

我的Asp.Net Core Web API 2.2项目中有一个Web API Controller.

Messageboard 模型:

public class MessageBoard
    {
        public long Id { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }

        public ICollection<Message> Messages { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

Message 模型:

public class Message
    {
        public long Id { get; set; }
        public string Text { get; set; }
        public string User { get; set; }
        public DateTime PostedDate { get; set; }

        public long MessageBoardId { …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core-mvc asp.net-core asp.net-core-webapi

6
推荐指数
1
解决办法
3398
查看次数