Ich möchte in der Lage sein, einen Rückgabetyp an meine Funktion DoRequest()
übergeben, so dass ich angeben kann, welcher Typ deserialize die Antwort, aber es scheint eine Variable von System.Type nicht übergeben werden in einen generischen <> Ausdruck als der Compiler gibt den Fehler "responseType is a variable but is used like a type"
.Übergeben Sie System.Type als Parameter an eine generische Methode
Gibt es eine Möglichkeit, dies zu tun?
static void Main(string[] args)
var requestObj = new MyRequestType();
var responseObj = DoWebRequest(requestObj , typeof(MyResponseType));
}
static object DoRequest(object reqObj, Type responseType){
HttpClient client = new HttpClient();
var response = client.PostAsJsonAsync("http://someuri.com", reqObj);
var stringResponse = response.Result.Content.ReadAsStringAsync().Result;
return JsonConvert.DeserializeObject<responseType>(respPostEpisode);
//Compile error: responseType is a variable but is used like a type
}
Ihre Methode ist nicht generisch, das ist das Problem –
Mögliche Duplikate von [Wie verwende ich Reflexion, um eine generische Methode aufzurufen?] (Http://stackoverflow.com/questions/232535/how-doi-i-use- Reflection-to-Call-a-Generic-Methode) – HimBromBeere