ant-design-blazor/components/core/JsInterop/InteropService.cs

48 lines
1.0 KiB
C#
Raw Normal View History

2020-05-16 23:27:40 +08:00
using System;
using System.Threading.Tasks;
using Microsoft.JSInterop;
namespace AntBlazor.JsInterop
{
public class InteropService
{
private readonly IJSRuntime _js;
public InteropService(IJSRuntime js)
{
_js = js;
}
public async ValueTask Copy(string text)
{
await this.JsInvokeAsync(JSInteropConstants.copy, text);
}
private async Task<T> JsInvokeAsync<T>(string code, params object[] args)
{
try
{
return await _js.InvokeAsync<T>(code, args);
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
private async Task JsInvokeAsync(string code, params object[] args)
{
try
{
await _js.InvokeVoidAsync(code, args);
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
}