.NET Core WorkerService中的反序列化JSON错误

9bfwbjaz  于 2023-03-24  发布在  .NET
关注(0)|答案(1)|浏览(120)

我们正在.NET Core 7中开发一个worker服务。该服务从文件中读取JSON并将其反序列化为模型。
模型为:

public class MWRoot
{
    public string? Authority { get; set; }
    public string? ShopNo { get; set; }
}

Json是:

{
    "Authority": "lbg",
    "ShopNo": "1397"
}

代码:

using (StreamReader r = new StreamReader(jsonfile, true))
 {
     string json = r.ReadToEnd();        
     MWRoot mwProperty = JsonSerializer.Deserialize<MWRoot>(json);                    
 }

在Visual Studio 2022中调试程序时,没有任何问题,但将其用作Windows服务(sc create "ServiceName" binpath=.....)时,会引发此异常:
不支持对没有无参数构造函数、单个参数化构造函数或用“JsonConstructorAttribute”注解的参数化构造函数的类型进行反序列化。

wlzqhblo

wlzqhblo1#

THX给Jeroen
我按照https://learn.microsoft.com/en-us/dotnet/core/extensions/windows-service发布了WorkerService,这意味着并非所有必需的文件都被复制到了目标目录

删除“生成单个文件”中的复选框时,服务工作正常。

相关问题