用于.net的Phalanger和php库

我有三个我想在我的.net应用程序中使用的php类。 我使用Phalanger来获取这三个类并使用此命令创建一个.dll文件:

phpc /target:dll Client.php Crypt.php Exception.php 

当然输出了Client.dll以及Client.pdb文件。

从那里我去了VS2012并创建了一个新的asp.net应用程序并添加了Client.dll作为参考。 但是我没有看到任何类的公共方法和对象浏览器窗口显示:

客户端>客户端>基本类型>对象(这样我只有Object类型的方法)

我已经尝试过这个方法/教程来使其工作,这涉及将自定义接口转换到您的对象但是我收到错误:

找不到类型或命名空间名称ScriptContext

这当然意味着它不知道ScriptContext的内容或位置。 但是这个教程是从2007年开始的,所以我不知道它是否会过时或者我应该从哪里获得该类?

我找到的另一个教程就像以前一样。 它说:

如果你想使用现有的PHP源代码(为标准解释器开发)而不进行修改,你必须使用传统模式,但是当你想开发新的PHP项目时,你可以考虑使用纯模式

但我无法在文档中找到遗留模式的步骤,并且更喜欢尝试“纯”模式(因此我不必更改/编辑我现有的PHP代码)。 我确实尝试过(纯模式)但是它不会使用上面的命令编译(phalanger compile)(将DynamicObject.php类添加到命令中)。

如何在php类中获取我的公共方法?

 phpc /target:dll Client.php Crypt.php Exception.php 

在传统(标准)模式下创建DLL。 这个DLL包含’奇怪的’命名空间,与PHP语义兼容所需。 (这些命名空间将代码与不同的脚本文件分开)。 Phalanger 3.0博客文章的.NET互操作性概述描述了如何使用在标准模式下编译的脚本。

命令行选项/pure+告诉编译器创建所谓的纯模式程序集。 在这种模式下,编译器连接所有源文件并将它们编译为一个(如C#所做的那样),没有任何奇怪的命名空间。 如果在PHP类声明之上指定[\Export]属性,则生成的DLL看起来就像从C#代码编译一样,并且您将能够引用它并正常使用它的类。