gpt4 book ai didi

c# - 创建一个通用方法来接受类型对象并返回一个新的类型对象

转载 作者:行者123 更新时间:2023-11-30 14:51:38 30 4
gpt4 key购买 nike

我想使用 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;
}
}

最佳答案

使用 generic type parameternew() constraint :

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");
}

关于c# - 创建一个通用方法来接受类型对象并返回一个新的类型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33853643/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com