.net - BinaryFormatter.Serialize With MemoryStream?
Apr 25, 2011
I am having an issue using BinaryFormatter.Serialize. I have this generic extension method to "clone" an object via binary serialization:
[Code]...
This is killing performance. Anything more that about 7 or 8 clones brings the app to a halt. Why would this happen? The USING block ought to ensure the MemoryString is disposed of, right? Shouldn't a new MemoryString be created each time? I would think since the same original Mode object is the source for the serialization, the MemoryString length would be the same.
I am using BinaryFormatters (System.Runtime.Serialization.Formatters.Binary.BinaryFormatter) and FileStreams (System.IO.FileStream) to perform simple Open, Save, and Save As commands. I am using a separate FileStream and BinaryFormatter in each method.
My issue is that there is a delay for between four and ten or so seconds after performing any of those abilities before you can perform any other of them. Apparently the file is open in "another process", which (my guess) is the FileStream.Let's say I save and close a file in my app. I then go File > Open and select the same file and go to open it. I get that error returned.This isn't really an issue with the code, it's more me asking what the reasons are for why this is happening. What would be a way to work around this?
If a class is serialized and has events fired from it that are handled on a form you get the error "Form1 cannot be serialized" in c# you can use (to work around this):
I'm working on a project to extract documents from a SQL Database and writing those documents to a network drive. However some of the files pointed at in the DB are encrypted files (RijndaelManaged)that reside on another network driveI have been able to retrieve, and decrypt the files using streams. Now aving problems saving or converting the Memorystream into an actual file.
Here is my code Public Sub ExtractDocument(ByVal ThisDocumentInfo
I'm working on a project in VB.Net (2010) where I'm extracting files from an Document Management System.The Files reside on the network, and information about the files are in a SQL 2005 Database and have been encrypted with the Encryption Stream (System. Security. Cryptography. Rijndael Managed)i have retrieved the file, and decrypted them, but I'm trying to find out how to write the stream back to a file.I know the file type (which is stored in a SQL DB)I can't find a solution in any of the VB files or the MS site.
I am dynamically creating an pdf from a memorystream to a web browser, using itextsharp. It is called via https and it works in IE and Firefox but not Safari or Opera. I don't care about Opera but I do want it to work in Safari though. If I make the call with http it does work (creates the pdf) in Safari but not https The error I get is The error is: unknown error (CFURLErrorDomain:303).
Ive a picture box on a webform. I want to load a picture into from a memorystream. The code im using :
If Me.ComboBox1.SelectedValue.ToString.Trim <> "System.Data.DataRowView" Then Dim bmpTmp As Drawing.Bitmap = Drawing.Bitmap.FromFile(Me.ComboBox1.SelectedValue.ToString.Trim)
[Code]....
What I'm trying to do is convert a tiff image to a gif and display it in a picturebox on a webform. The source file is deffinatly be found as the commented out line which saves the file to the c: drive works perfectly. However I cant seem to get the picturebox to load with the memory stream.
I have some trouble with loading a richtextbox from a memorystream.I have some data in a database table stored as a byte array, I convert it to a string and load it into a memorystream and then I want to load that memory stream in the richtextbox. The application breaks on
Dim tr As New TextRange(rtbTemplate.Document.ContentStart, rtbTemplate.Document.ContentEnd) though.
I wrote a piece of code that grabs a fileupload, puts it into a memory stream, converts the main pic, and thumbnail pic, then saves them as jpegs, then updates the database.
Everything works fine, except one little glitch. If the DPI is above 300 then the image doesn't save right. It get's pixelated and blury.
here is the code.
Dim fileLen As Integer # Dim myStream As System.IO.Stream # Dim ImgContentType As String
I want to validate xml against XSD (VB.NET). My function look like this:
Private Function ValidateXML(ByVal xml As MemoryStream, ByVal xsd As String) As ArrayList End Function
How can I do the validation when my xml is a memorystream/stream (I use stream because I don't need to store the xml) and my xsd is a string (I get my xsd from a web servise as a string, and I do not need to store it in a file)?
I use WPF and my program has images in a DLL resource file. I have this well working way to read in images from disk:
Private Function GetImageFromFile(ByVal fileName As String) As BitmapImage Dim buffer As Byte() = IO.File.ReadAllBytes(fileName) Dim memoryStream As New IO.MemoryStream(buffer)
[Code]....
Now, how can I get images in this MemoryStream-way from a DLL resource?
The basic problem: If I use simply the "bitmap.UriSource = whatever uri" way and load many images in sequence like an animation it builds up the memory. I tried with the above memorystream way and it worked perfectly fine, but then I store my images in a dll and I don't know how to do this trick. If anybody knows how to read many images from a managed dll without building up the memory
I have this code to attach an image that is saved in my sql database as an attachments (or can be embedded picture) to an email. It is suppose to be a signature for an Outlook email. So I am attaching it to the email. Here is my code. On the line myNewMail.Attachments.Add I get the error "Value does not fall within the expected range."
Globals.EmailSignatureImage.Imagecontent is Byte() I know it has the correct data in it, because I show it in a picturebox correctly.
Dim contenttype As New Net.Mime.ContentType Dim memStream As System.IO.MemoryStream
The Clipboard class has very handy methods to check contents, like 'ContainsImage' and 'ContainsText'.How do I check if a MemoryStream contains an image or a text?
I trying to display image in picture box. The application have two part.First part is windows application, and second part is web service (asmx).This is the code for windows application:
Public Sub PrikazSlike() Dim p As localhost.Service1 = New localhost.Service1() PictureBox1.Image = Image.FromStream(p.PictureShow())
I'm trying to play music from a memorystream in a WMP control.I can succesfully stream music with MediaPlayer, but this is limited to .wav and can't pause and so.
Dim mPlayer As New MediaPlayer(entryBytes.ToArray()) 'begin playing the file mPlayer.Play()
Is it possible to load a array of bytes or a memorystream into the WMP control?
As the title says can I create a memorystream then use it in a FIFO manner like a Queue.When you use memorystream.write it writes data at the memorystream.postion.If I then want to read the beginning of the memory stream I have to set position to the beginning and do a memorystream.read.
Is there something that needs to be done with the following code to release the memory it uses?
Dim objImage As MemoryStream Dim objwebClient As WebClient Dim sURL As String = Trim(m_StationInterface.PicLocation)
[Code].....
The code is on a popup form that shouldn't ever get disposed. A new image is loaded onto the form every time it pops up. However, the process size for the application continues to grow each time it makes it through that code block.
I've tried objImage.Close() and .Flush(), objWebClient.Dispose(). The process size still grows by a good 4mb after every call. It's like the old image is kept in memory.
We are developing an Android Application (Java) that reads an image, encode the bytes in base64 to send them over HTTP (via GET) to a WebService written in VB.NET.On .NET side, they are using this :
Dim Pix As Image Pix = Image.FromFile("C:UsersPublicPicturesSample PicturesTree.jpg") Dim ms As New MemoryStream[code]....
How can I pass the correct string to them to correctly decode the image from Java encoding (unsigned) to .NET decoding (signed)?
This is interesting. We've spent the last day attempting to patch a problem with the following (legacy) code that continues to grow its process size. This is done in Visual Studio 2003.We have a form on which we display an image (from MemoryStream) and some text and a button. Nothing fancy. Looks something like this: Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
[Code]...
Now. We've tried very numerous things. We've discovered that Disposing does nothing, and, indeed, the IDisposable interface doesn't actually touch memory. If we don't create a new CJ5Form_PTOperatorAcknowledgement form each time, the process size does NOT grow. But loading a new image into that form still causes the process size to continually grow.
I'm getting GDI+ error when saving picturebox image to the database. My database is sql server with image datatype. Ideally when I browse image file to the picturebox then save using following code
in VB.NET How can i write a memory stream to browser.My memory stream object has data to build a PDF file.Now i want it to be rendered on browser.How to do that ?
I'm breaking my head over the next problem. I have 2 applications (client/terminal). the client reads out the webcam and generates an image. This image needs to be send to the terminal which can accept multiple clients. At the terminal all received images are placed in an ordered panel. The purpose of this application is to monitor multiple webcams.What i can't get to work is how to send it on the client side and receive on the terminal side.
I'm attempting to use symmetric encryption to encrypt some data, and store the key necessary to decrypt with the data in a MemoryStream. (While I know that this alone is really dumb security-wise, I'm going to use RSA to encrypt the symmetric key. Right now, though, I'm trying to just get this part to work.)I'm using the FileHelpers library to parse the data for my delimiter (the semicolon, as I don't believe I'll ever have a semicolon in the data). Unfortunately, in my decryption function, when it's parsing, it only returns back one record. And, if I show the entire string of encrypted data created at the end of this function, it doesn't appear to be using multiple records.I'm wondering if when I create the new cryptostream, it's defaulting to the beginning of the memory stream, so when I write my encrypted data, it overwrites the data I had just written to the memory stream.[code]
I'm facing this peculiar problem since the past two days and now it is driving me nuts.I initialize a StreamReader from a MemoryStream object. When I move the seek pointer to beginning, the first time it is OK, but from 2nd time onwards I see an extra bad character at the beginning of stream that obviously should not be there.This doesn't happen with StreamReader initialized with other constructors like directly passing filename etc.I constructed a small program to demonstrate this. I added 2 buttons to a form and this code. When I run this code, clicking Button1 shows extra character at the beginning of string after ResetSeekPointer() function has been called at-least twice. This doesn't happen when I click Button2
vb.net Imports System.IOImports System.XmlImports System.Xml.XslImports System.Xml.SchemaImports System.Collections.Genericublic Class Form1Private myStreamReader As
I'm using WinPcap to capture incoming data. Basically I'm dealing with a continuous stream of incoming data, either as byte array or as memorystream (pieces up to 64kb).
I need to check this data to see if there's a certain url and then extract it.
The url I need to find looks like this:http://201.122.38.5/data/today/798572987-589571?139805890582 The length of the 'code' after "/today/" is always the same. The IP address changes. What's the best/fastest/most efficient way to continuously check these byte arrays or memorystreams and extract the urls without hogging the CPU too much?
I've tried rewriting this code several times, it spits out the bytes correctly, but then when trying to read the array created from the memory stream, it's empty, what am I doing wrong?
Dim bytes() As Byte = System.Text.Encoding.ASCII.GetBytes("test this shit") Dim bytesString As String = "" Dim i As Integer = 0 i = 0 Dim byteStream As New System.IO.MemoryStream
I am trying a simple object deserialization from an object encoded as a Base64 string, but I keep getting this weird error message. I've searched the forums for a solution but those who've experienced this all had different reasons for the error. The most logical solution, which is resetting the stream's position, did not work either. Here's my code:
Dim UnserializedObject As Object Dim ser As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter Dim buffer As Byte()