public interface MyRefitClient
{
[Post("/api/log")]
Task LogAsync([Body] StringContent request, CancellationToken cancellation);
}
< /code>
и служба, которая его использует: < /p>
public class MyBenchmarkingService
{
private readonly MyRefitClient _myRefitClient;
public MyBenchmarkingService(MyRefitClient myRefitClient)
{
_myRefitClient = myRefitClient;
}
public async Task TimedOperationAsync(Func task, string message, Dictionary payload,
CancellationToken cts)
{
var startTime = DateTime.UtcNow.ToString("o", CultureInfo.InvariantCulture);
var sw = Stopwatch.StartNew();
// execute the task
var result = await task();
sw.Stop();
var request = new Dictionary()
{
{ "Message", message },
{ "StartTime", startTime },
{ "ElapsedMilliseconds", sw.ElapsedMilliseconds.ToString(CultureInfo.InvariantCulture) }
};
// 200 here
var logResponse = await _myRefitClient.LogAsync(new StringContent(JsonSerializer.Serialize(request), Encoding.UTF8, "application/json"), cts);
return result;
}
}
< /code>
и, наконец, использование: < /p>
public class Foo
{
private readonly MyBenchmarkingService _benchmarkingService;
public Foo(MyBenchmarkingService benchmarkingService)
{
_benchmarkingService = benchmarkingService;
}
public async Task DoSomethingAsync()
{
var result = await _benchmarkingService.TimedOperationAsync(async () =>
{
// Simulate some work
return await DoOtherThingAsync();
}, "Doing something", new Dictionary(), CancellationToken.None);
}
async Task DoOtherThingAsync()
{
///......
return "result";
}
}
< /code>
Все классы и службы зарегистрированы в DI как Singleton.
Я могу поместить точку отдыха отладчика в var logresponse < /code> и могу проверить ответ. Но по какой -то странной причине клиент Refit не пишет на удаленный сервер. Однако, если я позвоню в Refit Client автономным, например, < /p>
var startTime = DateTime.UtcNow.ToString("o", CultureInfo.InvariantCulture);
var sw = Stopwatch.StartNew();
// execute the task
await DoOtherThingAsync();
sw.Stop();
var request = new Dictionary()
{
{ "Message", "message" },
{ "StartTime", startTime },
{ "ElapsedMilliseconds", sw.ElapsedMilliseconds.ToString(CultureInfo.InvariantCulture) }
};
// 200 here
var logResponse =
await _myRefitClient.LogAsync(
new StringContent(JsonSerializer.Serialize(request), Encoding.UTF8, "application/json"), cts);
< /code>
Клиент входит в систему на удаленном сервере, как и ожидалось. Таким образом, сервер и ремонт клиента «нормально», но при использовании в сочетании с TimeDoperationAsync
кажется, что клиент Refit не ведет себя, как и ожидалось. Есть идеи, какие здесь Gotcha? Закрытие и лямбдас?
Контекст: < /p> im Строите услугу, чтобы вычислить, сколько времени требуется, чтобы выполнить данное функцию и попытку написать ее в удаленном API.[code]public interface MyRefitClient { [Post("/api/log")] Task LogAsync([Body] StringContent request, CancellationToken cancellation); } < /code> и служба, которая его использует: < /p> public class MyBenchmarkingService { private readonly MyRefitClient _myRefitClient;
public MyBenchmarkingService(MyRefitClient myRefitClient) { _myRefitClient = myRefitClient; }
public async Task TimedOperationAsync(Func task, string message, Dictionary payload, CancellationToken cts) { var startTime = DateTime.UtcNow.ToString("o", CultureInfo.InvariantCulture); var sw = Stopwatch.StartNew(); // execute the task var result = await task(); sw.Stop(); var request = new Dictionary() { { "Message", message }, { "StartTime", startTime }, { "ElapsedMilliseconds", sw.ElapsedMilliseconds.ToString(CultureInfo.InvariantCulture) } }; // 200 here var logResponse = await _myRefitClient.LogAsync(new StringContent(JsonSerializer.Serialize(request), Encoding.UTF8, "application/json"), cts);
return result; } } < /code> и, наконец, использование: < /p> public class Foo { private readonly MyBenchmarkingService _benchmarkingService;
public Foo(MyBenchmarkingService benchmarkingService) { _benchmarkingService = benchmarkingService; }
public async Task DoSomethingAsync() { var result = await _benchmarkingService.TimedOperationAsync(async () => { // Simulate some work return await DoOtherThingAsync(); }, "Doing something", new Dictionary(), CancellationToken.None); }
async Task DoOtherThingAsync() { ///...... return "result"; } } < /code> Все классы и службы зарегистрированы в DI как Singleton. Я могу поместить точку отдыха отладчика в var logresponse < /code> и могу проверить ответ. Но по какой -то странной причине клиент Refit не пишет на удаленный сервер. Однако, если я позвоню в Refit Client автономным, например, < /p> var startTime = DateTime.UtcNow.ToString("o", CultureInfo.InvariantCulture); var sw = Stopwatch.StartNew(); // execute the task await DoOtherThingAsync(); sw.Stop(); var request = new Dictionary() { { "Message", "message" }, { "StartTime", startTime }, { "ElapsedMilliseconds", sw.ElapsedMilliseconds.ToString(CultureInfo.InvariantCulture) } }; // 200 here var logResponse = await _myRefitClient.LogAsync( new StringContent(JsonSerializer.Serialize(request), Encoding.UTF8, "application/json"), cts); < /code> Клиент входит в систему на удаленном сервере, как и ожидалось. Таким образом, сервер и ремонт клиента «нормально», но при использовании в сочетании с TimeDoperationAsync [/code] кажется, что клиент Refit не ведет себя, как и ожидалось. Есть идеи, какие здесь Gotcha? Закрытие и лямбдас?
Контекст:
im Строите услугу, чтобы вычислить, сколько времени требуется, чтобы выполнить данное функцию и попытку написать ее в удаленном API. public interface MyRefitClient
{
Контекст:
im Строите услугу, чтобы вычислить, сколько времени требуется, чтобы выполнить данное функцию и попытку написать ее в удаленном API. public interface MyRefitClient
{
Кодовая часть 1 содержит первую часть метода создания презентации, а вторая часть содержит 2 -ю часть кода и добавление кода слайда, показанного ниже.
Тот, кто может решить эту проблему.>
Кодовая часть 1:
using (MemoryStream stream = new MemoryStream())
{
using (PresentationDocument ppt = PresentationDocument.Create(stream, PresentationDocumentType.Presentation))
{
var presentationPart = ppt.AddPresentationPart();...
Я создаю пакет Wheel для pypi, обычно это нормально, но после обновления некоторых сторонних разработчиков у меня возникла ошибка:
>>> from meshlib import mrmeshpy as mm
Traceback (most recent call last):
File , line 1, in
ImportError: DLL load...