【问题标题】:Running C# dll in browser for calculations only在浏览器中运行 C# dll 仅用于计算
【发布时间】:2019-05-08 11:20:08
【问题描述】:

我有 fin 的 C# 代码。计算,我想在浏览器中运行它。我研究了 Blazor,但我能找到的所有示例都集中在 ASP.NET 上,而我想下载一个 .dll 或 .wasm 文件并从我现有的 Web 应用程序(用 Typescript 编写)执行它。我正在寻找一个例子。

【问题讨论】:

  • 明确地说,您不想(不能)使用 Web API?因为那将是使用 ts 中的 C# 库的正常方式。
  • 我们已经有 api 调用,现在我们正在寻求改进我们的应用程序。摆脱频繁的往返重新计算是一个很好的选择 - 更快的用户界面和更少的服务器负载。但是,由于这是企业计算,如果我们可以保留单个代码库,我只会这样做。

标签: dll webassembly blazor


【解决方案1】:

如果您只想在通常的 JavaScriptAngular 页面中运行 WebAssembly 代码,那么您必须修改 Blazer 项目中的 bootstrapping js 文件,该文件目前没有记录。

到目前为止,最简单的方法是创建一个简单的 Blazer 项目,将其加载到 iFrame 中,将需要使用 js 计算的数据传递给应用程序。

您可以从应用程序中的 javascript 调用 WebAssembly 方法。

你的 C# 代码

[JSInvokable]
public string SayHello() => $"Hello, {Name}!";

你的 JS 调用者

sayHello: function (dotnetHelper) {
    return dotnetHelper.invokeMethodAsync('SayHello')
      .then(r => console.log(r));
  }

更多信息请参考

https://docs.microsoft.com/en-gb/aspnet/core/blazor/javascript-interop?view=aspnetcore-3.0

【讨论】:

    【解决方案2】:

    感谢 VibeeshanRC 回答和 Microsoft 文档,我通过删除与手动调用无关的所有内容(UI 相关代码)来调整 Blazor 示例之一。 https://github.com/IKoshelev/BlazorExampleManualInvocation

    【讨论】:

      猜你喜欢
      • 2014-11-01
      • 1970-01-01
      • 2018-05-24
      • 2021-06-22
      • 2013-10-19
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 2011-10-26
      相关资源
      最近更新 更多