C# Phalanger和.net的php库

C# Phalanger和.net的php库,c#,php,.net,phalanger,C#,Php,.net,Phalanger,我有三个php类,我正试图在我的.net应用程序中使用它们。我使用Phalanger获取这三个类,并使用以下命令生成.dll文件: phpc /target:dll Client.php Crypt.php Exception.php 当然,它会输出Client.dll以及Client.pdb文件 从那里我转到VS2012,创建了一个新的asp.net应用程序,并添加了Client.dll作为参考。但是,我没有从任何类中看到公共方法,对象浏览器窗口显示: 客户端>客户端>基本类型>对象(因此我

我有三个php类,我正试图在我的.net应用程序中使用它们。我使用Phalanger获取这三个类,并使用以下命令生成.dll文件:

phpc /target:dll Client.php Crypt.php Exception.php
当然,它会输出Client.dll以及Client.pdb文件

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

客户端>客户端>基本类型>对象(因此我只有 类型(对象)

我已经尝试了方法/教程来让它工作,这涉及到将自定义界面投射到对象上,但是我得到了错误:

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

这当然意味着它不知道脚本上下文是什么或在哪里。然而,这个教程是从2007年开始的,所以我不知道它是否已经过时了,或者我应该从哪里得到这个课程

我找到的那辆车也一样旧。它说:

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

但是我在文档中找不到遗留模式的步骤,我更愿意尝试“纯”模式(这样我就不必更改/编辑现有的php代码)。我确实尝试过(纯模式),但是它不会用上面的命令编译(phalanger compile)(将DynamicObject.php类添加到命令中)

如何在php类中访问我的公共方法

phpc /target:dll Client.php Crypt.php Exception.php
在传统(标准)模式下创建DLL。此DLL包含与PHP语义兼容所需的“怪异”名称空间。(这些名称空间将代码与不同的脚本文件分开)。博客文章描述了如何使用标准模式下编译的脚本


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

如果您在visual studio中有一个phalanger项目,请转到属性,并将模式更改为纯。非常感谢!但是,我的部分问题是找不到类ScriptContext。文档提到VS express edition不受支持,所以我没有看到该类?PHP.Core.ScriptContext在PhpNetCore.dll中。。。VS Express不支持第三方插件-这意味着您无法安装利用Phalanger/PHP项目和编辑器功能的Phalanger工具插件,但这不会影响C#编辑器体验谢谢,我没有意识到我必须在“C:\Program Files\Phalanger 3.0\Bin”浏览它如果有机会,请查看我的后续问题(关于phalanger没有看到我的php类的事实)