2016-02-08 2 views
0

У меня есть эта рабочая строка кодатипа Pass в качестве параметра newtonsoft JSon десериализации

Public Shared Function JSONArrayToObject(source As String, result As Type) As Object 
    Return JsonConvert.DeserializeObject(Of PAManufacturer())(source) 
End Function 

результат типа, и я хотел бы заменить PAManufacturer с GetType (результат) или эквивалент.

Мне не удалось обойти эту проблему. У меня могло бы быть сто этих методов десериализации, но я уверен, что смогу использовать переменную результата.

ответ

1

Вы можете использовать общие функции (из которых DeserializeObject один) для этого:

Public Shared Function JSONArrayToObject(Of T)(source As String) As T() 
    Return JsonConvert.DeserializeObject(Of T())(source) 
End Function 

Где вы могли бы назвать его как:

Dim arr as PAManufacturer() = JSONArrayToObject(Of PAManufacturer())(someSourceString) 

Хотя если вы до этого уровня, один чудеса почему вы используете функцию вообще, и не просто имеете кодовый вызов JsonConvert.DeserializeObject напрямую.

+0

Вы сделали мне гордое спасибо, я удалил другие биты кода, которые записывают различные элементы в этот метод, это единственная причина, по которой код не используется напрямую в соответствии с вашим вторым предложением. Спасибо за вашу помощь. – user174634

+0

@ user174634 Я понял, что может быть больше, чем то, что вы представляете, рад, что это помогло! –

Смежные вопросы