我正在制作WCF服务,并且存在将与服务通信的客户端,并且客户端期望响应处于给定格式。
这就是我使用MessageContract的原因。但是客户端将原始类型作为参数。
我是否无法使用MessageContract使我的服务接受原始类型作为参数?
这是我创建的合同的代码。
include 'detalii.php';
$con = mysqli_connect("192.168.1.11","test","","admin");
$check = "SELECT ID FROM `q7f6xr` where VIRTUALM = 'REGO-A' ORDER BY ID DESC LIMIT 1 ";
$check1 = "SELECT CHEIE FROM `rego-a` ORDER BY CHEIE DESC LIMIT 1";
$rs = mysqli_query($con, $check);
$rs1 = mysqli_query($con, $check1);
$data = mysqli_fetch_array($rs);
$data1 = mysqli_fetch_array($rs1);
if ($data != $data1) {
// DACA IP-UL EXISTA EXECUTA AICI
// IF IP EXISTS EXECUTE THIS
echo "IP-ul exista deja !<br/>";
} else {
$newUser = "INSERT INTO `rego-a` (`CHEIE`) VALUES ('$data[0]')";
if (mysqli_query($con, $newUser)) {
// DACA IP E UNIC EXECUTA AICI
// IF IP IS UNIQUE EXECUTE THIS
echo exec('C:\Users\Admin\Desktop\test1.txt');
echo "You are now registered<br/>";
}
}
这一切都有效,但是当我尝试在服务中添加参数(int Id,string foo)时,它会制动,因为当使用消息契约时,参数需要是对象。
有没有办法解决这个问题?
答案 0 :(得分:0)
使用knowntype修饰内容列表。
[KnownType(typeof(contentList))]
[MessageContract(IsWrapped = false)]
public class contentListResult
{
[MessageBodyMember]
public contentList contentList { get; set; }
}
public class contentList
{
//Some properties
}
答案 1 :(得分:0)
好的我正在寻找一种能够在服务中获取参数的解决方法。
解决方法是声明一个对象并用[MessageContract]和[MessageHeader]的属性修饰它。