新版本 .NET 6 在没有设置的情况下无法工作
New version .NET 6 is not work without get set
我的旧项目正在使用 .NET Core 2.2,我需要将其迁移到 .NET 6。
之前的开发者添加了一些 classes 是这样的:
public class ClassName
{
public int code;
public string message;
}
和API控制器
[HttpGet]
[Route("GetTotal")]
public List<ClassName> GetTotal(DateTime dtCur)
{
List<ClassName> l = new List<ClassName>();
ClassName n = new ClassName()
{
code = -99,
message = "invalid session"
};
l.Add(n);
return l;
}
它适用于 .NET Core 2.2,但在 .NET 6 上,它总是 return 是来自 ajax 或 Postman 的空数组。
要在 .NET 6 中完成它,我必须像这样修复 class:
public class ClassName
{
public int code { get; set; }
public string message { get; set; }
}
但问题是旧项目中的所有 classes 他们没有将 { get; set; }
添加到任何 classes,这意味着我必须修复它们。
有什么方法可以快速修复它,或者有人可以解释为什么在 .NET 6 中 return 在这种情况下为空?
对于您的场景,您可以在 Program.cs
中全局启用字段序列化,如:
builder.Services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.IncludeFields = true;
});
我的旧项目正在使用 .NET Core 2.2,我需要将其迁移到 .NET 6。
之前的开发者添加了一些 classes 是这样的:
public class ClassName
{
public int code;
public string message;
}
和API控制器
[HttpGet]
[Route("GetTotal")]
public List<ClassName> GetTotal(DateTime dtCur)
{
List<ClassName> l = new List<ClassName>();
ClassName n = new ClassName()
{
code = -99,
message = "invalid session"
};
l.Add(n);
return l;
}
它适用于 .NET Core 2.2,但在 .NET 6 上,它总是 return 是来自 ajax 或 Postman 的空数组。
要在 .NET 6 中完成它,我必须像这样修复 class:
public class ClassName
{
public int code { get; set; }
public string message { get; set; }
}
但问题是旧项目中的所有 classes 他们没有将 { get; set; }
添加到任何 classes,这意味着我必须修复它们。
有什么方法可以快速修复它,或者有人可以解释为什么在 .NET 6 中 return 在这种情况下为空?
对于您的场景,您可以在 Program.cs
中全局启用字段序列化,如:
builder.Services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.IncludeFields = true;
});