使用作为PHP参数的dataContract使用WCF服务

使用作为PHP参数的dataContract使用WCF服务,php,wcf,soap,Php,Wcf,Soap,我试图从PHP客户端使用WCF服务,但没有成功。 我无法使用具有“DataContract”对象作为参数的服务方法。 这是我的密码: public class Service1 : IService1 { public string GetData(int value) { return string.Format("You entered: {0}", value); } public CompositeType GetDataUsingDat

我试图从PHP客户端使用WCF服务,但没有成功。 我无法使用具有“DataContract”对象作为参数的服务方法。 这是我的密码:

public class Service1 : IService1
{
    public string GetData(int value)
    {
        return string.Format("You entered: {0}", value);
    }

    public CompositeType GetDataUsingDataContract(CompositeType composite)
    {
        if (composite == null)
        {
            throw new ArgumentNullException("composite");
        }
        if (composite.BoolValue)
        {
            composite.StringValue += "Suffix";
        }
        return composite;
    }
}
以下是“复合类型”合同:

[DataContract]
public class CompositeType
{
    bool boolValue = true;
    string stringValue = "Hello ";

    [DataMember]
    public bool BoolValue
    {
        get { return boolValue; }
        set { boolValue = value; }
    }

    [DataMember]
    public string StringValue
    {
        get { return stringValue; }
        set { stringValue = value; }
    }
}
下面是我创建的PHP客户端

$obj = new stdClass();
$obj->BoolValue = true;
$obj->StringValue ="Sandeep";
$parameter= array("CompositeType"=>$obj);
echo "\n";
$client = new SoapClient('http://localhost:2051/Service1.svc?wsdl');
$obj1 = $client->GetDataUsingDataContract($parameter);
print_r($obj1);
当我使用上述方法时,DataContarct作为Null传递给WCF

解决办法是什么

$parameter= array("CompositeType"=>$obj); 

更改composite中的CompositeType(=与接口中的变量名完全相同)

您使用的是.Net的哪个版本。net 3.5还是4.0?请从asp.net web.config发布节点。请共享客户端和服务器的配置位。