我希望在PHP中使用.NET的一个类,所以我使用了PHP的DOTNET
类。我想实例化一个具有参数构造函数的类。
$e = new DOTNET($full_assembly_string, $full_class_name);
我该如何通过这个API传递构造函数参数?
我希望在PHP中使用.NET的一个类,所以我使用了PHP的DOTNET
类。我想实例化一个具有参数构造函数的类。
$e = new DOTNET($full_assembly_string, $full_class_name);
我该如何通过这个API传递构造函数参数?
无法这样做
在进行此集成时,可能需要考虑一些问题:
就像PHP手册所说的那样,返回的对象是一个重载的对象,这使得PHP无法识别对象可能包含的公共方法。因此,如果您使用var_dump对其进行转储,您将看到一个空数组。这就是为什么在调用它之前必须了解内部DLL类结构的原因。
幸运的是,我们还有另一个专门用于此工作的工具,即随.NET框架一起提供的ildasm.exe。它位于c:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \或c:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v6.0A \ bin下的gacutil.exe旁边。 要加载和显示DLL结构,只需调用“ildasm.exe \ path \ to \ your.dll”即可。
2.参数 另一个问题是,您无法向DLL中的类构造函数传递参数。
作为两种不同的编程语言,我们涉及到不同的数据类型。也就是说,您必须确保DLL类方法返回PHP可以理解的数据类型(主要是字符串、整数、布尔值等)。如果您的方法需要返回数组列表或更复杂的结构,则可能需要考虑使用JSON进行编码。
阅读更多信息,请访问