"с использованием Microsoft.JSInterop;" вызывает побочные эффекты?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 "с использованием Microsoft.JSInterop;" вызывает побочные эффекты?

Сообщение Anonymous »

Официальный пример функциональности взаимодействия JavaScript для шаблона RazorClassLibrary-CSharp:

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

using Microsoft.JSInterop;

namespace Company.RazorClassLibrary1;

public class ExampleJsInterop : IAsyncDisposable
{
private readonly Lazy moduleTask;

public ExampleJsInterop(IJSRuntime jsRuntime)
{
moduleTask = new (() => jsRuntime.InvokeAsync(
"import", "./_content/Company.RazorClassLibrary1/exampleJsInterop.js").AsTask());
}

public async ValueTask Prompt(string message)
{
var module = await moduleTask.Value;
return await module.InvokeAsync("showPrompt", message);
}

public async ValueTask DisposeAsync()
{
if (moduleTask.IsValueCreated)
{
var module = await moduleTask.Value;
await module.DisposeAsync();
}
}
}
Если мы удалим использование Microsoft.JSInterop; и заменим ссылки IJSObjectReference и IJSRuntime на полные имена:

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

namespace Company.RazorClassLibrary1;

public class ExampleJsInterop : IAsyncDisposable
{
private readonly Lazy moduleTask;

public ExampleJsInterop(Microsoft.JSInterop.IJSRuntime jsRuntime)
{
moduleTask = new (() => jsRuntime.InvokeAsync(
"import", "./_content/Company.RazorClassLibrary1/exampleJsInterop.js").AsTask());
}

public async ValueTask Prompt(string message)
{
var module = await moduleTask.Value;
return await module.InvokeAsync("showPrompt", message);
}

public async ValueTask DisposeAsync()
{
if (moduleTask.IsValueCreated)
{
var module = await moduleTask.Value;
await module.DisposeAsync();
}
}
}
мы получим следующие ошибки:

Тип аргумента «строка» не может быть присвоен типу параметра
'object?[]?'
at

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

jsRuntime.InvokeAsync(
"import", "./_content/Company.RazorClassLibrary1/exampleJsInterop.js").AsTask());

Тип аргумента «строка» не может быть назначен типу параметра
'объект?[]?'
в

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

csharp return await module.InvokeAsync("showPrompt",
message);
Что это? Использование «использования Microsoft.JSInterop;» вызывает побочные эффекты?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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