📜  c# from javascript with callback - Javascript (1)

📅  最后修改于: 2023-12-03 15:13:48.969000             🧑  作者: Mango

C# from JavaScript with Callback - JavaScript

在编写JavaScript应用程序时,您可能需要与C#代码进行交互。为此,您可以使用回调函数来调用C#代码。在这里,我们将介绍如何从JavaScript中调用C#代码,并且如何使用回调函数获取结果。

首先,我们需要为我们的C#代码创建一个类
public class CsharpInterop
{
    public void SayHello(string name, Action<string> callback)
    {
        callback("Hello, " + name + "!");
    }
}

在此类中,我们定义了一个名为SayHello的方法。它将接受一个字符串参数表示名称,并具有一个回调函数参数。在此方法中,我们调用回调函数,并将“Hello,+ name +!”字符串传递给它。请注意,回调函数参数的类型为Action

接下来,我们需要创建用于从JavaScript调用C#代码的JavaScript函数
function sayHello(name, callback) {
    DotNet.invokeMethodAsync('MyAssemblyName', 'CsharpInterop.SayHello', name)
        .then(result => {
            callback(result);
        });
}

在此函数中,我们使用DotNet.invokeMethodAsync()方法来调用C#方法。该方法接受三个参数:程序集名称,类名和方法名。我们将CsharpInterop.SayHello作为方法名传递。我们还传递了名称参数,这是我们将传递给C#方法的参数。最后,我们在.then()方法中使用回调函数来获取从C#返回的结果。

最后,我们可以在JavaScript中调用我们的函数
sayHello('John', function(result) {
    console.log(result);
});

在此代码中,我们调用了sayHello()函数,并传递了一个名称参数和一个回调函数。当C#方法返回结果时,回调函数将运行,并将结果打印到控制台中。

总结

在本文中,我们已经学习了如何从JavaScript中调用C#代码。我们使用回调函数来获取从C#返回的结果。通过这种方法,我们可以将JavaScript和C#代码集成在一起,以创建强大的Web应用程序。