2014-02-04 3 views
2

У меня есть метод .net Web-сервиса CheckCustomerLicense, и этот метод возвращает C резкий сериализованный объект, я вызываю этот метод через Soap from PHP.Доступ к сборкам .NET через COM в PHP

Я получаю сериализованный объект, который двоично отформатирован, а не в формате XML.

Именно это я и столкнулся: Я хочу получить доступ к этим данным как к объекту в PHP, но для этого я должен его желать, а поскольку его объект .NET я хочу использовать .NET, встроенный в класс System.Runtime.Serialization.Formatters.Binary через COM.

Но его не работает.

Когда я использую класс System.Collections.Stack, он работает, т. Е. Получает доступ к сети. Но почему это не для класса System.Runtime.Serialization.Formatters.Binary?

Код показан ниже:

Working ...

<?php 
$stack = new COM("System.Collections.Stack"); 
$stack->Push(".Net"); 
    $stack->Push("Hello "); 
    echo $stack->Pop() . $stack->Pop(); 
?> 

не работает

<?php 
    $obj = new COM("System.Runtime.Serialization.Formatters.Binary"); 
?> 

Пожалуйста, помогите ....

ответ

1

Вы только поставить пространство имен, вам нужно полное имя класса. Класс называется System.Runtime.Serialization.Formatters.Binary.BinaryFormatter (см. MSDN).

Sidenote: кто решил, что сериализация webservice через SOAP должна отправить что-то, что является двоичным сериализованным? Это кажется ... ну ... «странным», мягко говоря.

+0

Спасибо .. Его доступность теперь, можете ли вы сказать мне, как именно получить доступ к данным как к объекту в php сейчас. –

+0

Извините, у меня нет опыта работы с PHP. Как программист на C#, я могу сказать, что я никогда не отправил бы что-то двоичное сериализованное. Я даже не уверен, что это сработает, вам нужно будет узнать тип .NET, который у вас есть. Двоичная сериализация - это один большой неприятный беспорядок, если вы тоже не используете C#. Можете ли вы попросить программиста вашего веб-службы вместо этого использовать разумный интерфейс? – nvoigt

+0

Нет, я не могу спросить, потому что один и тот же объект уже доступен в нескольких приложениях C# (Done By Other C# Programmers), Так что у одного и того же объекта у меня есть доступ для лицензирования ... –

Смежные вопросы