从Web UI中的VBScript函数调用C#函数

时间:2014-12-02 22:01:23

标签: c# vbscript

我需要在Microsoft Azure网站托管上的VBScript函数(或合适的解决方法)中调用或至少将参数传递到C#函数,即:。

Function VBScriptFnc(param_1, param_2, param_3)

  Dim flag;

  flag = 1

    'call the C# function or somehow pass parameters into C# function'
    csharpFunction(param_1, param_2, param_3)


  VBScriptFnc = flag

End Function

2 个答案:

答案 0 :(得分:5)

VBScript有5个进入.NET世界的窗口:

  1. 通过HTTP POST / GET到某种类型的.NET处理程序(例如.aspx,HTTP处理程序,MVC或WebAPI控制器)。
  2. 通过将数据写入文件或数据库以供.NET进程选择。
  3. exposing a .NET assembly (class library) as a COM object并在Windows注册表中添加相应的条目(手动或使用命令实用程序),以便可以直接从VBScript调用它。见this article
  4. 使用直接从VBScript运行的.NET创建可执行文件。
  5. 使用PowerShell to call into a .NET assembly并使用VBScript to call PowerShell
  6. 网站上最直接的选择是使用GET或POST,因为你将避开ACL和COM注册的雷区,但如果你必须沿着另一条道路走,我会说PowerShell是你最好的选择,其次是COM interop作为第三选择。

答案 1 :(得分:1)

您需要通过将COMVisibleAttribute设置为true将程序集标记为COM可见(如果您只想公开单个类型,则在程序集级别或类级别)。

接下来,请注册:

regasm /codebase MyAssembly.dll

最后从VBScript调用它:

dim myObj
Set myObj = CreateObject("MyNamespace.MyObject")

此答案最初由Darin Dimitrov Here发布。