System.InvalidOperationException: «Невозможно определить информацию о сериализации»C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 System.InvalidOperationException: «Невозможно определить информацию о сериализации»

Сообщение Anonymous »

У меня возникла эта ошибка
"System.InvalidOperationException: 'Невозможно определить информацию о сериализации для c => c.LastRunTime.TimeOfDay.Add(new TimeSpan(0, c. RunInterval, 0))".
Ниже мой код

Код: Выделить всё

    using System;
using System.Linq;
using System.Linq.Expressions;
using System.Threading;
using System.Threading.Tasks;
using Configuration;
using DeviceManagement.Models;
using DeviceManagement.Util;
using Microsoft.Extensions.Hosting;
using MongoDB.Driver;

namespace DeviceManagement.Services
{
public class CronConfigService : BaseService, IHostedService, IDisposable
{
private readonly CancellationTokenSource _cts = new CancellationTokenSource();
private readonly Dictionary _nextRunTimes = new Dictionary();
private readonly CronHistoryService _cronHistoryService;

public CronConfigService(Setting setting, IHttpContextAccessor context, User user, CronHistoryService cronHistoryService)
: base(setting, context, user)
{
InitializeNextRunTimes();
_cronHistoryService = cronHistoryService;
}

public async Task StartAsync(CancellationToken cancellationToken)
{
await RunCronJobs();
}

public async Task StopAsync(CancellationToken cancellationToken)
{
_cts.Cancel();
}

public void Dispose()
{
_cts.Dispose();
}

private async Task RunCronJobs()
{
while (!_cts.IsCancellationRequested)
{
var now = DateTime.Now;
var dueConfigs = await GetDueCronConfigs(now);

foreach (var config in dueConfigs)
{
try
{
await RunCronJob(config);
CreateCronHistory(config, null);
}
catch (Exception ex)
{
CreateCronHistory(config, ex.Message);
}
}
}
}

private async Task GetDueCronConfigs(DateTime now)
{
var cronConfigCollection = Database.GetCollection("CronConfig");

var filter = Builders.Filter.Or(
Builders.Filter.Eq(c => c.RunTime, now.TimeOfDay),
Builders.Filter.And(
Builders.Filter.Lt(c => c.LastRunTime.TimeOfDay.Add(new TimeSpan(0, c.RunInterval, 0)), now.TimeOfDay)
)
);

return await cronConfigCollection.Find(filter).ToListAsync();
}

private async Task RunCronJob(CronConfig config)
{
var httpClient = new HttpClient();
var response = await httpClient.PostAsync(config.Url, new StringContent(config.Payload.ToString()));

if (!response.IsSuccessStatusCode)
{
throw new Exception($"Failed to run cron job: {response.StatusCode}");
}
}

private void CreateCronHistory(CronConfig config, string error)
{
var history = new CronHistory
{
Cron = config.Code,
Error = error,
OtherInfo = $"Ran at {DateTime.Now}"
};

_cronHistoryService.Save(new List { history });
}

private void InitializeNextRunTimes()
{
var cronConfigs = Database.GetCollection("CronConfig").Find(FilterDefinition.Empty).ToList();
foreach (var config in cronConfigs)
{
_nextRunTimes[config.Code] = DateTime.Now.Add(new TimeSpan(0, config.RunInterval, 0));
}
}
}
}

Я попробовал добавить [BsonRepresentation(BsonType.String)]
к свойствам, надеясь, что, возможно, он будет сериализован.

Подробнее здесь: https://stackoverflow.com/questions/790 ... on-informa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • System.InvalidOperationException: «Невозможно определить информацию о сериализации»
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Метод не найден: 'System.String System.String.Format(System.IFormatProvider, System.String, System.Object)
    Anonymous » » в форуме C#
    0 Ответы
    141 Просмотры
    Последнее сообщение Anonymous
  • Исключение типа «System.InvalidOperationException» произошло в System.Private.CoreLib.dll.
    Anonymous » » в форуме C#
    0 Ответы
    48 Просмотры
    Последнее сообщение Anonymous
  • Исключение типа «System.InvalidOperationException» произошло в System.Private.CoreLib.dll.
    Anonymous » » в форуме C#
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Исключение типа «System.InvalidOperationException» произошло в System.Private.CoreLib.dll.
    Anonymous » » в форуме C#
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»