J'ai rencontré ce code dans un de mes projets, qui a une fonction statique pour renvoyer un MemoryStream d'un fichier, qui est ensuite stocké dans le cache. Maintenant, la même classe a un constructeur qui permet de stocker un MemoryStream dans une variable privée et de l'utiliser plus tard. Donc, il ressemble à ceci:Stockage de MemoryStream dans le cache
private MemoryStream memoryStream;
public CountryLookup(MemoryStream ms)
{
memoryStream = ms;
}
public static MemoryStream FileToMemory(string filePath)
{
MemoryStream memoryStream = new MemoryStream();
ReadFileToMemoryStream(filePath, memoryStream);
return memoryStream;
}
Utilisation:
Context.Cache.Insert("test",
CountryLookup.FileToMemory(
ConfigurationSettings.AppSettings["test"]),
new CacheDependency(someFileName)
);
Et puis:
CountryLookup cl = new CountryLookup(
((MemoryStream)Context.Cache.Get("test"))
);
Je me demandais qui devrait disposer le MemoryStream et quand? Idéalement, CountryLookup devrait implémenter IDisposable.
Dois-je m'en préoccuper?
+1, pour stocker le tableau 'byte []' dans le cache - les membres d'instance de 'MemoryStream' ne sont pas sûrs d'être thread-safe. –