public class student
{
public int a{get;set;}
public int b{get;set;}
}
public interface IStudentService
{
AddStudent(student s);
}
客户端
[JsonObject] //添加特性
public class student
{
[JsonProperty]
public int a{get;set;}
[JsonProperty]
public int b{get;set;}
}
.....
student stu= DeserializeObject(file.readtext());
Client.AddStudent(stu);//调用失败!!!!!
[JsonObject] //添加特性
public class JsonStudent
{
[JsonProperty]
public int a{get;set;}
[JsonProperty]
public int b{get;set;}
}
public class student
{
public int a{get;set;}
public int b{get;set;}
}
JsonStudent jsonstu= DeserializeObject(file.readtext());
student rpc_stu=new stduent();
rpc_stu.a=jsonstu.a;
rpc_stu.b=jsonstu.b;
Client.AddStudent(rpc_stu);//调用成功!!!
当客户端和服务端数据交互的类 的特性不一致 就会RPC调用失败: 这句话可能说的不太明白,请看代码: 服务端:
客户端
在客户端,上述代码中的student类即作为json的存储类,又作为和server交互的数据类,上述写法会调用失败,除非我把student的特性去掉。现阶段我的解决方案是这么写的:
可见,客户端的类和服务器的类必须一致才可以,在这个例子中束缚了写法,必须定义两个类,我认为客户端和服务端的数据交互 传递的有效数据是 各个类中的具体字段、属性等等, 特性这个应该被忽略掉,这样我最开始的第一种写法就可以了,就不用重新定义类了