.NET 10 Blazor WebAssembly — вызов C# из JavaScript больше не работает (JSInvokable/JSExport/createDotNetRuntime)C#

Место общения программистов C#
Ответить
Anonymous
 .NET 10 Blazor WebAssembly — вызов C# из JavaScript больше не работает (JSInvokable/JSExport/createDotNetRuntime)

Сообщение Anonymous »

Я создаю Android-приложение Ionic/Angular, которое должно выполнять код C# из DLL через WebAssembly.
Рабочая настройка (.NET 9)
С .NET 9 при таком подходе все работает нормально:
  • Проект Blazor WebAssembly
  • Методы C#, украшенные [JSInvokable]
  • Создайте проект → получите папку /framework
  • Скопируйте /framework в приложение Angular
  • Вызовите C# из JavaScript, используя:
  • Код: Выделить всё

    DotNet.invokeMethodAsync("MyAssembly", "MyMethod")
Это работает отлично.
Проблема после обновления до .NET 10
После обновления проектов C# до .NET 10 вся установка нарушается.
Похоже, что внутренние процессы взаимодействия Blazor WebAssembly/JS значительно изменились и Я больше не могу вызывать методы C# из приложения Angular.
Что я пробовал Больше не работает

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

DotNet.invokeMethodAsync
не работает
Инициализация среды выполнения кажется другой/отсутствует
2. [JSExport] (встроенное взаимодействие с WASM)
Я попробовал «новый» рекомендуемый подход:

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

dotnet publish -c Release -r browser-wasm
При этом создаются файлы .wasm и .js

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

[JSExport]
методы скомпилированы правильно
Но при вызове из Angular я получаю:

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

createDotNetRuntime is not defined
Похоже, что .NET 10 больше не предоставляет простой API-интерфейс начальной загрузки JS, который можно использовать за пределами официальной модели хостинга Blazor.
Текущий вывод
Похоже, что в .NET 10 Microsoft больше не поддерживает:
  • Повторное использование выходных данных Blazor WebAssembly внутри сторонних сервисов Blazor приложения
  • Вызов кода C# из JavaScript без полного внедрения новой модели среды выполнения.
  • Переход на .NET 9 не является жизнеспособным долгосрочным решением.
Что я ищу
Есть ли в .NET 10 поддерживаемый способ:
  • Загрузить среду выполнения .NET WASM вручную?
  • Вызов методов C# из JavaScript в приложении, отличном от Blazor?
  • Есть ли замена DotNet.invokeMethodAsync?
  • Любое официальное решение или обходное решение сообщества для использования .NET WASM как библиотека?
Будем очень признательны за любые рекомендации, примеры или подтверждения того, что это больше не поддерживается.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/798 ... r-works-js
Ответить

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

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

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

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

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