使用作为PHP参数的dataContract使用WCF服务
我试图从PHP客户端使用WCF服务,但没有成功。 我无法使用具有“DataContract”对象作为参数的服务方法。 这是我的密码:使用作为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
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发布节点。请共享客户端和服务器的配置位。