Bir Stream'i klonlayabilir miyiz?Bir .NET Akışını Kopyalamak Mümkün mü?
cevap
Hayır, akışlar genellikle bir tür yerel kaynaklara (bir soket, bir dosya tanıtıcısı, vb.) Başvururlar ve böylece klonlanamaz veya serileştirilemezler. Ayrıca, birçok akış ileriye dönükdür ve arama yapılmasını desteklemez, böylece bir akıştan yeniden okuyamayabilirsiniz bile.
Okunabilir bir akıştan neler yapabilirsiniz, ancak bir bayt dizisi olarak taşınabilecek MemoryStream'e kopyalayın.
Bunun nasıl gösteren bir kod parçacığı için aşağıdaki yayınlara bakın: How do I copy the contents of one stream to another?
public static void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[32768];
while (true)
{
int read = input.Read (buffer, 0, buffer.Length);
if (read <= 0)
return;
output.Write (buffer, 0, read);
}
}
Hayır, genel akışı klonlanamaz.
Hayır. Klonlama, Stream
sınıfında genellikle desteklenen bir işlem değildir. Bunun için Stream
sınıfının tüm olası uygulamalarını kapsaması gerekir.
Bu, FileStream
gibi öğeler için yapılabilir, ancak bunun NetworkStream
için ne anlama geldiğini düşünebilirsiniz. Klonlama genellikle yaratılış noktasında özdeş olan tamamen ayrı nesneler oluşturma kavramına sahiptir. Bu, genellikle bir bağlantı noktasında NetworkStream
'a sarılmış TCP bağlantıları gibi öğeler üzerinde gerçekleştirilemez.
Bu doğru ama zaten bazı Stream uygulamaları NotSupportedException atma bazı işlevleri desteklemiyor gibi .. aynı klonlama söz konusu olduğunda yapılmış olabilir. – rafek
- 1. CALayer'i UIView'den kopyalamak mümkün mü?
- 2. Bir panoyu grafiğe kopyalamak mümkün mü?
- 3. Safari'de istekleri cURL olarak kopyalamak mümkün mü?
- 4. ESP8266 - is. Net mümkün mü?
- 5. Javascript'te oluşturulmuş bir okt akışını yürütmek mümkün mü?
- 6. ColdFusion'dan bir .NET derlemesi başvurusu mümkün mü?
- 7. Oyun kaynaklarını bir .smc dosyasından kopyalamak mümkün mü?
- 8. Bir React web sitesini (Instagram) Cheerio ile kopyalamak mümkün mü?
- 9. Eclipse kullanarak .NET geliştirmesi yapmak mümkün mü?
- 10. VBScript'te bir .Net string nesnesi örneği almak mümkün mü?
- 11. Bir Windows XP ve .NET Framework uygulaması çalıştırmak mümkün mü
- 12. Bir .NET derlemesinden yansımayı devre dışı bırakmak mümkün mü?
- 13. Verileri uzak bir MSSQL tablosunda yerel bir Tabloya kopyalamak mümkün mü?
- 14. ? mümkün mü?
- 15. mümkün mü?
- 16. mümkün mü?
- 17. mümkün mü?
- 18. .NET: Bir sınıfın özelliklerini kopyalamak için bir sınıf var mı
- 19. İki video akışını aynı anda tek bir SurfaceView üzerinde oluşturmak mümkün mü?
- 20. Bir komutta 4 uint8_t dosyasını 4 int16'ya kopyalamak mümkün mü?
- 21. .NET DNS sınıfı powershell arka plan işi mümkün mü?
- 22. .NET DataGridView sütununu yalnızca klavye kullanarak sıralamak mümkün mü?
- 23. .NET 4'te dinamik olarak yollar oluşturmak mümkün mü?
- 24. . Net expando nesnesi ve LINQ. Mümkün mü değil mi?
- 25. .NET generic sınıfıyla COM arabirimi uygulamak mümkün mü?
- 26. .NET projesinde koşullu referanslar, uyarılardan kurtulmak mümkün mü?
- 27. .Net kitaplığı zaman damgalarını korurken bir dosya taşımak/kopyalamak
- 28. Ortalanmış flexbox elemanlarını hizalamak mümkün mü?
- 29. ISO8859-1 kodlu metin akışını JavaScript'i kullanmadan önce UTF-8'e dönüştürmek mümkün mü?
- 30. Program akışını görmek için XS bölümlerini içeren Perl'de hata ayıklamak mümkün mü?
Akış, .NET 4'ten beri bir CopyTo yöntemine sahiptir. – Alex
Eklendiğini bilmek güzel, teşekkürler! O zamanlar yoktu. – Josh