C# 在PHP中通过COM访问.NET程序集
我有一个.net Web服务方法C# 在PHP中通过COM访问.NET程序集,c#,php,.net,C#,Php,.net,我有一个.net Web服务方法CheckCustomerLicense,这个方法返回一个C sharp序列化对象,我通过PHP中的Soap调用这个方法 我得到的序列化对象是二进制格式的,不是XML格式的 这正是我所面临的: 我想在PHP中以对象的形式访问该数据,但要做到这一点,我必须对其进行优化,因为它是一个.NET对象,所以我想通过COM使用.NET内置类System.Runtime.Serialization.Formatters.Binary 但它不起作用 当我使用classSystem
CheckCustomerLicense
,这个方法返回一个C sharp序列化对象,我通过PHP中的Soap调用这个方法
我得到的序列化对象是二进制格式的,不是XML格式的
这正是我所面临的:
我想在PHP中以对象的形式访问该数据,但要做到这一点,我必须对其进行优化,因为它是一个.NET对象,所以我想通过COM使用.NET内置类System.Runtime.Serialization.Formatters.Binary
但它不起作用
当我使用classSystem.Collections.Stack
时,它正在工作,ie.net正在被访问。
但为什么它不适用于类System.Runtime.Serialization.Formatters.Binary
代码如下所示:
工作
<?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");
?>
请帮助……如果只放置名称空间,则需要完整的类名。该类称为
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
(请参阅)
旁注:谁决定通过SOAP序列化的Web服务应该发送二进制序列化的内容?那似乎。。。好。。。委婉地说是“奇怪”。谢谢。。现在可以访问了,你能告诉我如何在php中以对象的形式访问数据吗?对不起,我没有php方面的经验。作为一名C#程序员,我可以告诉你,我永远不会发送二进制序列化的东西。我甚至不确定它是否有效,你需要知道你得到的对象的.NET类型。如果不使用C#,二进制序列化将是一个大麻烦。你能要求你的Web服务的程序员提供一个合理的接口吗?不,我不能这样要求,因为同一个对象已经在多个C#应用程序中被访问过(由其他C#程序员完成),所以我必须访问同一个对象进行授权…如果返回的数据是XML格式,那么,通过PHP进行访问是可能的吗?SOAP已经是Xml序列化了,所以我很难找到在这个序列化中再次序列化数据的原因。也许你可以和网络服务人员谈谈,你可能误解了什么。我不敢相信他们做额外的工作只是为了让你更难。