Refactoring einer Methode, die ein iAyncenumerable zurückgibtC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Refactoring einer Methode, die ein iAyncenumerable zurückgibt

Post by Anonymous »

Ist es möglich, eine Methode, die iAsyncenumerable ?

Code: Select all

public async IAsyncEnumerable GetFoosFromFile(string filename)
{
using (FileStream fs = File.OpenRead(filename))
{
var items = JsonSerializer.DeserializeAsyncEnumerable(fs);
await foreach (var item in items)
{
yield return item;
}
}
}

public async IAsyncEnumerable GetFoosFromString(string inputString)
{
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(inputString ?? "")))
{
var items = JsonSerializer.DeserializeAsyncEnumerable(ms);
await foreach (var item in items)
{
yield return item;
}
}
}
Ist es möglich, alles in der Verwendung von nach seiner eigenen Methode neu zu gestalten? So etwas

Code: Select all

public async IAsyncEnumerable GetFoosFromFile(string filename)
{
using (FileStream fs = File.OpenRead(filename))
{
yield return GetFoosFromStream(fs);
}
}

public async IAsyncEnumerable GetFoosFromString(string inputString)
{
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(inputString ?? "")))
{
yield return GetFoosFromStream(ms);
}
}

private async IAsyncEnumerable GetFoosFromStream(Stream inputStream)
{
var items = JsonSerializer.DeserializeAsyncEnumerable(ms);
await foreach (var item in items)
{
yield return item;
}
}
Ich konnte den Compiler hier nicht glücklich machen, und soweit ich die Wechselwirkung zwischen Ertrag erwarte ist im Grunde genommen unmöglich. Es gibt überhaupt keine Chance, alles im Gedächtnis zu halten. Daher der DeserializeAsyncenumerable in erster Linie.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post