如何在 PHP 中实例化具有参数化构造函数的 .NET class?

How to instantiate a .NET class in PHP which has a parameterized constructor?

我想在 PHP 中使用 .NET 的 class,并为此目的使用 PHP 的 DOTNET class。我想实例化一个 class ,它有一个参数化的构造函数。

$e = new DOTNET($full_assembly_string, $full_class_name);

如何通过此 API 传递构造函数参数?

不可能那样做

在进行此集成时,您可能需要考虑以下几个问题:

  1. Public 方法

正如 PHP 手册所说,returned 对象是一个重载对象,这使得 PHP 不知道对象可能包含的 public 方法。所以,如果你 var_dump 它,你只会看到一个空数组。这就是为什么在调用它之前必须知道内部 DLL class 结构的原因。

对我们来说幸运的是,.NET 框架附带了另一个专门用于这项工作的工具,称为 ildasm.exe。它位于 gacutil.exe 旁边 c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ 或 c:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin。 要加载和显示 DLL 结构,只需调用“ildasm.exe \path\to\your.dll“。

2。参数 另一个问题是您不能将参数传递给 DLL 中的 class 构造函数。

  1. 数据类型

作为两种不同的编程语言,我们涉及不同的数据类型。话虽如此,您将必须确保 PHP 理解的 DLL class 方法 return 数据类型(主要是字符串、整数、布尔值等)。如果您的方法需要 return 数组列表或更复杂的结构,您可能需要考虑 JSON 进行编码。

阅读更多内容

http://blog.zitec.com/2012/handling-net-assemblies-in-php/