Phalanger и php-библиотека для .net

У меня есть три php-класса, которые я пытаюсь использовать в моем приложении .net. Я использовал 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. (эти пространства имен разделяют код из разных файлов сценариев). Обзор совместимости .NET в блоге Phalanger 3.0 описывает, как использовать сценарии, скомпилированные в стандартном режиме.

Опция командной строки /pure+ указывает компилятору создать так называемую сборку чистого режима. В этом режиме компилятор объединяет все исходные файлы и компилирует их как один (как это делает C #), без каких-либо странных пространств имен. Если вы укажете атрибут [\Export] выше объявления класса PHP, в результате получится, что DLL будет выглядеть так, как он будет скомпилирован из кода C #, и вы сможете ссылаться на него и обычно использовать его классы.