错误:“Serialize”方法没有重载需要 1 个参数

问题描述 投票:0回答:1

我有这个 C# 服务,用于在每个计时器滴答声中将 api 结果转换为 Json 文件,但它在 JsonSerializerSerialize 中给出错误,“错误:方法‘Serialize’没有重载需要 1 个参数” 我该如何修复它?

我只在控制台应用程序中执行此操作并且有效,但是当我尝试在 Windows 服务中进行转换时我无法运行

  using Newtonsoft.Json;
using System;
using System.IO;
using System.Net.Http;
using System.ServiceProcess;
using System.Threading;
using System.Threading.Tasks;

namespace ConsultaPainelService
{
    public partial class Service1 : ServiceBase
    {
        Timer temp;

        public Service1()
        {
            InitializeComponent();

        }

        protected override void OnStart(string[] args)
        {
            temp = new Timer(new TimerCallback(temp_Tick), null, 15000, 30000);
        }

        protected override void OnStop()
        {
            StreamWriter vWriter = new StreamWriter(@"C:\ConsultPanel\Log", true);

            vWriter.WriteLine("stop: " + DateTime.Now.ToString());
            vWriter.Flush();
            vWriter.Close();

        }

        private void temp_Tick(object sender)
        {
            SalveAsync();
        }

   
        private async Task SalveAsync()
        {
            using (HttpClient client = new HttpClient())
            {
                try

                {
                    string fileName = "C://ConsultPanel/Carr.json";
                    string rep= await client.GetStringAsync("https://10.10.10.10:1010/api/Panel/Carr");
                    string jsonString = JsonSerializer.Serialize(rep);
                    File.WriteAllText(fileName, jsonString);

                }

                catch (Exception ex)
                {
                    StreamWriter vWriter = new StreamWriter(@"C:\ConsultPanel\Log", true);

                    vWriter.WriteLine("Error: " + DateTime.Now.ToString() + " - " + ex.Message);
                    vWriter.Flush();
                    vWriter.Close();
                }
c# windows-services jsonserializer
1个回答
0
投票

我怀疑这段代码在控制台应用程序中是否有效。事实上,我认为它甚至不会编译。我不确定您使用的是哪个版本的 Newtonsoft,但是 JsonSerializer 类上没有静态 Serialize 方法。您需要在序列化器上调用Create Method,然后向其传递TextWriter(或其他)或直接实例化JsonSerializer的实例

也许您将其与 .NET JsonSerializer 混淆了。

© www.soinside.com 2019 - 2024. All rights reserved.