Sto scrivendo una nuova libreria portatile .NET in grado di leggere un formato di file e il file I / O non è disponibile per le librerie portatili. L'articolo " Come fare in modo che le librerie di classi portatili lavorino per te "afferma che dovrò scrivere librerie specifiche della piattaforma per risolvere questo problema per ogni piattaforma. Questo non è un problema.
Quindi, avrò il codice di lettura del formato file nella libreria portatile, e poi alcune librerie specifiche della piattaforma per aiutare con I / O specifici della piattaforma: una libreria specifica per piattaforma verrà scritta usando tradizionale tradizionale .NET System.IO.File
, mentre la libreria di app di Windows Store utilizzerà Windows.Storage
e quella di Windows Phone userà System.IO.IsolatedStorage
. So che WinRT è tutto asincrono, ma ho solo esperienza con il tradizionale .NET File
e I / O sincrono.
Ciascuna di queste librerie specifiche della piattaforma farà riferimento alla libreria portatile e fornirà al lettore del formato file un'implementazione specifica della piattaforma di un oggetto di origine dati:
ISomeDataSource dataSource = new WinRTDataSource(@"filename.bin");
var reader = new FileFormatReader(dataSource);
Come faccio a progettare l'interfaccia (ad esempio ISomeDataSource
sopra) in modo tale che possa leggere e cercare all'interno dei dati? Ma allora indipendente dalla piattaforma e forse anche asincrona?
Ho accesso a tutte le funzionalità di Visual Studio 2012 e C # 5 ( async
e await
), ma poiché non sono su Windows 8 non posso provare WinRT.