Member 14779968 Ответов: 2

Как использовать тип в качестве параметра в метод, чтобы использовать любое имя класса в jsonconvert.deserializeobject&ЛТ;&ГТ; способ?


Здравствуйте, у меня есть метод, который принимает параметр типа класса. И я хочу, чтобы иметь возможность передавать любое имя класса при вызове этого метода.. и передавать имя класса также в var data = JsonConvert.DeserializeObject<classname>(ответ.Содержание);


//Вот метод
public static void Method1(IRestResponse response, Type className)
{
     var data = JsonConvert.DeserializeObject<className>(response.Content);
   //I am getting error className is used like a variable but is used like a type
}


Что я уже пробовал:

Заметьте, конечно.. Я попытался бросить его, но это не помогло.

2 Ответов

Рейтинг:
1

Sandeep Mewara

Если вы видите здесь: JsonConvert.Метод DeserializeObject(T) (Строка)[^] :
Ожидание состоит в том, чтобы иметь класс, в котором вы написали "имя класса". Хотя вы не дали много информации о нем, но имя и ошибка, похоже, предполагают, что это имя переменной, а не тип.

В способе:

JsonConvert.DeserializeObject<T> Method (String)

T => тип объекта для десериализации.

Поставьте тип, и он должен работать.


Рейтинг:
0

F-ES Sitecore

Для этого вам следует использовать дженерики

public static void Method1<T>(IRestResponse response)
{
    var data = JsonConvert.DeserializeObject<T>(response.Content);
}


код вызова;

Method1<MyType>(restResponse);