契约
public class Employee { [DataMember] public string Id { get; set; } [DataMember] public string Name { get; set; } [DataMember] public string Department { get; set; } [DataMember] public string Grade { get; set; } public override string ToString() { return string.Format("ID: {0,-5}姓名: {1, -5}级别: {2, -4} 部门: {3}", Id, Name, Grade, Department); } }
接口
[WebGet(UriTemplate = "create?id={ID}&name={Name}&age={Department}&grade={Grade}")] void Create(Employee employee);
方法为创建一个雇员,我想以上述的url地址的方式调用,可是这样写报异常:
约定“IEmployees”中的操作“Create”应具有名称为“ID”的参数的 UriTemplate,但该操作并没有此名称的输入参数
在 open方法的时候报
貌似是你的(UriTemplate = "create?id={ID}&name={Name}&age={Department}&grade={Grade}"
与Create中参数不匹配。
改成这样试试:
UriTemplate = "create?employee={employee}
参考地址:http://stackoverflow.com/questions/6783264/passing-a-class-as-parameter-in-restful-wcf-service