我想使用RestSharp为我的服务请求和响应创建一个通用方法。我想传递任何类的资源URL和对象名称,并希望得到与我传递的对象类型相同的响应。
我没有找到一种方法来运行此代码,并且我知道它不是理想的方法,但是如果有人指导我改正正确的路径,例如,我将感到高兴。
class Employee
{
Employee em = new Employee();
RequestClass CreateRequest = new Request();
public Employee GetAllEmployee()
{
return RequestClass.MyRequest("http://get-all-employee",em);
}
}
class RequestClass
{
public Type MyRequest(string resource, Type objectName)
{
var client = new RestClient("http://Service-url.com");
var request = new RestRequest(resource, Method.GET);
var response = client.Execute(request);
var result = response.Content;
Type ClassName = objectName.GetType();
Object myobject = Activator.CreateInstance(ClassName);
JsonDeserializer jsonDeserializer = new JsonDeserializer();
myobject = jsonDeserializer.Deserialize<Type ClassName>(response);
return (Type)myobject;
}
}
public T MyRequest<T>(string resource) where T : new()
{
var client = new RestClient("http://Service-url.com");
var request = new RestRequest(resource, Method.GET);
var response = client.Execute(request);
JsonDeserializer jsonDeserializer = new JsonDeserializer();
return jsonDeserializer.Deserialize<T>(response);
}
然后像这样使用它:
public Employee GetAllEmployee()
{
var requestClass = new RequestClass();
return requestClass.MyRequest<Employee>("http://get-all-employee");
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句