Я знаю, что это должно звучать глупо ... но редко бывает.
Проверьте, пытаетесь ли вы выполнить php из
**http://localhost/info.php**
, а не из
file:///var/www/info.php
ps> вы можете заметить, что если вы пишете из shell
php info.php
, то ответьте на код (это означает php-функции) ..
Я думаю, что если вы немного измените свой цикл, все должно работать:
public IEnumerable<TResult> ReadJson<TResult>(Stream stream)
{
var serializer = new JsonSerializer();
using (var reader = new StreamReader(stream))
using (var jsonReader = new JsonTextReader(reader))
{
jsonReader.SupportMultipleContent = true;
while (jsonReader.Read())
{
yield return serializer.Deserialize<TResult>(jsonReader);
}
}
}
Обратите внимание, что вы должны перебирать IEnumerable<TResult>
, пока Stream
, переданный этому методу, открыт:
using (var stream = /* some stream */)
{
IEnumerable<MyClass> result = ReadJson<MyClass>(stream);
foreach (var item in result)
{
Console.WriteLine(item.MyProperty);
}
}
Пример: https://dotnetfiddle.net/Y2FLuK