簡體   English   中英

創建接受類型對象的通用方法並返回一個新的類型對象

[英]Creating a Generic Method for Accepting Type Object and return a new Object of Type

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

使用帶有new()約束泛型類型參數

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM