Rav*_*dag 1 c# servicestack asp.net-mvc-4
这是DTO
public class Employee
{
public int EmployeeID { get; set; }
public string EmployeeName { get; set; }
public string EmployeeeAddress { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是回应
public class EmployeeResponse
{
public List<Employee> listofemp { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是服务堆栈服务
public class EmployeeServices:Service
{
public dbRepo<Employee> objEmploye; //Repository (which is working fine)
public EmployeeServices()
{
objEmploye = new dbRepo<Employee>();
}
public object getAll(Employee obj)
{
var objlist = new EmployeeResponse {listofemp = objEmploye.GetAll().ToList()};
return objlist.listofemp;
}
}
Run Code Online (Sandbox Code Playgroud)
这是AppHostBase类
public class ServiceHostApp:AppHostBase
{
public ServiceHostApp()
: base("ServiceStack WebSerivces", typeof(EmployeeServices).Assembly)
{
}
public override void Configure(Funq.Container container)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么EmployeeServices Metod没有显示在元数据中?有什么额外的事情,我需要做什么?
ServiceStack对与所使用的Http Verb匹配的方法名称进行操作,因此不getAll
应该使用Get
(或者All
如果有任何动词可以用来执行此操作).
无需退货object
......
public List<Employee> Get(Employee obj)
{
var objlist = new EmployeeResponse {listofemp = objEmploye.GetAll().ToList()};
return objlist.listofemp;
}
Run Code Online (Sandbox Code Playgroud)
最后,您可以随时装饰Employee
:
[Route("/Employee")]
public class Employee
{
public int EmployeeID { get; set; }
public string EmployeeName { get; set; }
public string EmployeeeAddress { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
该属性在命名空间中定义ServiceStack.ServiceHost
.