Serializing To Binary Formatter A Complex Object With WPF Classes?
Feb 17, 2012
i have a complex object that holds a WPF Canvas with many child canvases, rectangles and, lines. The object includes some home grown classes as well. The main object and the home grown classes have the <Serializable()> attribute set. I tried the general formatter.Serialize(strm, rb_x) to serialize the object to a memory stream. I then found out that WPF classes are set as serializable. So after some research I discovered the System.Runtime.Serialization and found a generic Serialization Surrogate.So after some debugging I was able to serialize the object to a memory stream then copied the stream to an array of bytes then store that array in an OLE field in an MS Access table.
When I read back the access record and copy the OLE field byte array back to a memory stream and then de-serialize it back to the object I get a SerializationException "Error binding to target method."
So question #1 - is what I am trying even possible?Question #2, (assuming #1 is yes) do I need to do something special with WPF Baml type objects.
I am currently using a binary formatter to serialize/deserialize some data objects. Some of the properties in the classes are Strings. When the data is written you can open the file with a text editor and can see the raw String data. Is there any way to encrypt the Strings or the entire object before it is serialized? I have looked at this thread here [URL] but the code is in C# and the free converters I tried for some reason did not like the code. This is the code I am using currently.
How to serialize a collection to a binary file? Structure MainServerInfo Dim Name As String Dim IP As String Dim Uname As String Dim Pass As String End Structure [Code] .....
Often it is very usefull to save data as a class by serialize and compress it. From few experiments I have noticed that Class A Public name as string Public List as new list(of string) <---- empty End Class
Class B Public name as string Public List as list(of string) <----- not instantiated End Class
If I serialize and compress the 2 classes the class B uses less spaces once serialized and compressed. This suggests me that if a class contains a list that is instantiated but empty it is better to set that to nothing and reset as new when it is decompressed and deserialized. Is there any dll that optimizes a class to be stored (serialized and compressed) and restore it when it is decompressed and deserialized?
Surprised this question has not been asked yet here, but here goes: Serialization in VB.NET is a bit of a pain. If you use the standard Serializable() attribute, and attempt to serialize a class that has events which are attached to handlers, it will attempt to serialize the handlers as well. Coming from a C# background I am not used to dealing with this problem, and the best solution I can find is using a class off of CodeProject.
what's a Class, and Object, a Method, a property and thins like that, but I have this doubt:Let's supppose I have a class "Laundry" this class has (just for this example) 3 propierties:
1.- laundryID 2.- Name 3.- Washers
Id and Name are "primitive" types or simple types (integer and string), but Washers, represent a list of object of type "Washer", that has 3 properties:
1.- washerID 2.- laundryID 3.- capacity 4.- brand
All of them (for this example) simple/primitives types (integer,string,string).So this my dilemma, it is correct to have a constructor like this (VB .net)
public sub new(ByVal laundryID as integer) '' Here I'll query for the data of the Laundry on DB '' After that I will query for every washer that belongs to this laundry
[code]....
And inside of that constructor query for all the washers that belongs to the laundry with id=laundryID parameter, and create objects of type "Washer" and add them to the list of Laundry ?I'm not sure If I explain myself, any comment I'll be really grateful, in less words, what's the correct approach (or good practices) to work with class/objects that has properties which are complex (other class/objects).I usually work with ADO.net probably ADO/LINQ/Entity solve this thins in an transparent way, but if they do it I don't really know it.
Note: I'm familiar with VB.net, C#, PHP, so if you prefer explain/help me using examples with its syntax, it's ok
I've been reading up on this whole subject, but I never came across this specific problem. I already understand that the whole idea of serializing an entire form is a horrible idea and just doesn't work. But, I am encountering a bit of a different problem. I have a class that inherits the "button" form object, that I call DataButton.
Now for my problem. I want to be able to serialize this class, but I don't need any of the information from the actual button class. Is there any way to bypass the fact that I can't set the button form object to Serializable() and notify VB that when serialization is to occur, it should simply skip over that information? Theoretically, if such a procedure were possible, I'd be able to do the entire serialization without a hitch.
I came up with the idea earlier of removing the "inherits" feature from the class, and having simply a button within the class, but that makes my program really difficult to work with as I am constantly changing the location, size, backgroundImage, text, and whatnot. Thus, immediate updates would be much tougher to work with.
I'm trying to save some settings in a complex object. If I make a dll of the class I can then add it in the projects properties settings list as that type.When the program runs though it won't show up as anything other than nothing. I read you have to have a sub new empty constructor which I have but don't know why else this would fail.First question is how to you do this. Second is there anyway to use a class inside the project as the target of the settings type or do you have to bring a in an external dll to do this every time? [code]
I'm having a real problem with serializing data. I understand that its designed to basically copy the structure and data of a structure. In my case, I have the state of a DVD that i would like to save (persist) to disk. [Code] error: 'Error Generating XML', Inner Exception: "Unable to cast COM object of type 'System.ComObject' to class type 'DirectShowLib.DVDState'.
COM components that enter the CLR and do not support IProvideClassInfo or that do not have any interop assembly registered will be wrapped in the ComObject type. Instances of this type cannot be cast to any other class; however they can be cast to interfaces as long as the underlying COM component supports QueryInterface calls for the IID of the interface."
In a vb .net winforms app I am trying out something for "wide and shallow" children of a record. I use strongly typed business objects ( Strataframe ).My plan is to have a number of "child tables" collected in a dataset I drop on the form. they have no correspondence in persisted data, so the dataset is untyped and I am creating the schema through the property sheet for the tables. Each table is the datasource for a datagridview in the interface.
In my proof of concept sample, My main businessobject (CustomerBO) interacts with a SQL Server 2008 table with fields - pk, name, - and a third column which is currently varchar(max) as I considered XML but could just as easily be varbinary(max) if that works better for holding the serialized dataset.
bo.bigfield will be the strongly typed prop I want to hold the byte() array or XML or whatever that represents the dataset for that record.So, the question in a nutshell - how do I convert a dataset to a single datum and reproduce the dataset from that datum. This is my first foray into datasets, datagridviews as well so if there are better ways to accomplish any of that I'm listening.
I am trying to send an object created in JavaScript to an ASP.NET PageMethod. This object mirrors the properties of an existing custom business object, so i was hoping that i could pass a single object instead of a parameter for each property. I am getting an error "Unknown web method SavePart when attempting to use this method.
Is it possible to call the VB code formatter from within a macro? I wrote a macro that automatically adds a call to the logger in side an function or sub when it is created. But when I change the TextEditor.Enter command to my macro, no code formating takes place. Is there a way to call the original command Edit.BreakLine(Enter(TextEditor)) ??
I am having problems with serializing and de serializing my objects.The following is my code for serializing buttons and labels which I have in my form.
Dim nodes As New List(Of nodeclass) Dim objStreamWriter As New StreamWriter(filelocation) For Each btn As Button In myNodeBtns Dim u As New nodeclass
[code].....
I get an error: There is an error in XML document (20, 3).Now I have found out that this is because I have 2 root elements and 2 xml declerations. When I save the xml for the button and te xml for the label in 2 different files, I have no problem. However I have no idea how to go about saving the xml for both of them in the same file and deserializing it back.
I am wondering the best way to store an object in memory that is used in a lot of classes throughout an application. We have multiple databases, 1 per customer. We also have a master table and each row is detailed information about the databases such as database name, server IP it's located and a few config settings.
I have an application that loops through those multiple databases and runs some updates on them. The settings I mentioned above are updated each loop iteration into memory. The application then runs through series of processes that include multiple classes using this data. The data never changes during the processes, only during the loop iteration.
The variables are related to a customer, so I have them stored in a customer class. I suppose I could make all of the members shared or should I use a singleton for the customer class? I've never actually used a singleton, only read they are good in this type of situation. Are there better solutions to this type of scenario? Also, I could have plans for this application to be multithreaded later.
I need to pass a block of binary data to a web service. The object I'm passing is part of an API, so the Serialize/Deserialize/Byte functions are built-in to the API class. It is not explicitly XML Serializable as far as I can tell.
Unfortunately, whenever I pass the data to my web service, even as an encoded string, the service returns a "(400) Bad Request" error. If I remove the encoded data and replace the variable with a simple string, an appropriate response is returned, ruling out authentication, service errors, etc.
'Convert the byte array into an encoded string' Dim unicodeEncoder As New UnicodeEncoding() Dim serializedData As String = unicodeEncoder.GetString(myObject.Bytes).Trim() Dim webAuth As New myWebService.ServiceSoapClient MessageBox.Show(webAuth.VerifyFeatureSet(serializedData , "", "", "", ""))
how I can accomplish this? If I need to encode the data a different way, include a snippet for decoding it on the far end.
I am trying to serialize object in method binary mode. However, I would like to get a file in human-unreadable format. which means i want to encrypt file. In my memory, if i want to write text into binary file in C, when I set writing mode as binary, I will get a file in human-unreadable format, but in .net, I can't get that.
I have a serializable Message class that has a Data As Object property that I'm using as a generic holder for information to be sent via a system that uses a combination of push technology and/or IPC to communicate with any other programs that are interested in the information. This allows the communication piece to be agnostic of the information it transmits.
I was serializing this Data As Object as a Byte[], since I was worried about how an Object being serialized and transmitted across the network would behave on the other side. However, when deserializing I get errors about being unable to find the assembly for the types stored within my Data As Object property, because I'm deserializing in the assembly that contains the Message class... not the assembly that contains the type that Data As Object originally was.I was wondering if I'd lose the type information and be unable to cast it back to the type I want at the other end. Perhaps it's not possible to pass a type as an Object via another assembly without it knowing about my type?
I have two classes, one nested in the other. [code]Neither "Name" or "ID" are unique between operations and records.I wish to construct a dictionary using LINQ = Dictionary(Of String, Of List(Of Integer), whereby the keys are uniqe examples of Names in my collection and the values are the collective set of distinct IDs that are associated with those names.
How can I structure my classes so that the user interfaces though a single class while the supporting classes are hidden from their view? I think its best understood in an example:
Public Class MyInterface Public Economic as EconomicClass Public Sub New() MyBase.New()
[code].....
So you might ask why am I even separating them? It's strictly for others who will be working with this interface. I need to funnel them though a logical structure:
This way everything is already handled for them in the background and they only need to run the method they need. I don't know if I can have it both ways in VB.NET.
I have just finished my application and am stuck as to how I'm going to store my data. As it stands I have multiple objects that I created but each of them take multiple ArrayLists as properties. I'm aware that this will give problems if I try to serialize my data?
I'm trying out MVVM in VB.Net for a while now and started out with some of my entities using List(of T)s, which I xml serialized to disk. Now, I updated the classes used by the Lists to implement INotifyPropertyChanged so I also changed the List(of T)s to ObservableCollection(of T)s.After which, the XML serializer stopped working :'( A colleague told me that ObservableCollections, unlike generic Lists, are not serializable.If so then how can I make them Serializable?
I have a class that I want to be serializable but contains a public instance of delegate that, apparently can't be serialized: [Code] Is there a way to make it serializable however?
I'm not positive I'm going about this the right way. I've got a suite of applications that have varying types of output (custom defined types).For example, I might have a type called Widget:
Class Widget Public name as String End Class
Throughout the course of operation, when a user experiences a certain condition, the application will take that output instance of widget that user received, serialize it, and log it to the database noting the name of the type.
Now, I have other applications that do something similar, but instead of dealing with Widget, it could be some totally random other type with different attributes, but again I serialize the instance, log it to the db, and note the name of the type. I have maybe a half dozen different types and don't anticipate too many additional ones in the future.
After all this is said and done, I have an admin interface that looks through these logs, and has the ability for the user to view the contents of this data thats been logged. The Admin app has a reference to all the types involved, and with some basic switch case logic hinged upon the name of the type, will cast it into their original types, and pass it on to some handlers that have basic display logic to spit the data back out in a readable format (one display handler for each type)NOW... all this is well and good...Until one day, my model changed. The Widget class now has deprecated the name attribute and added on a bunch of other attributes. I will of course get type mismatches in the admin side when I try to reconstitute this data.
I was wondering if there was some way, at runtime, i could perhaps reflect through my code and get a snapshot of the type definition at that precise moment, serialize it, and store it along with the data so that I could somehow use this to reconstitute it in the future?
Possible Duplicate: Fastest serializer and deserializer with lowest memory footprint in C#?
I'm using BinaryFormatter class to serialize an structure or a class. (after serialization, I'm going to encrypt the serialized file before saving. (And of course decrypt it before deserialization))But I heard that some other serialization classes are present in .Net Framework. Like XmlSerializer, JavaScriptSerializer, DataContractSerializer and protobuf-net.I want to know, which one is best for me?Less RAM space needed for serialize/deserialize is the most important thing for me. Also speed is important.
<Serializable()> Public Class data Public _needleCount As Integer = 1 Public percent As Double = 100.0 Public table As DataTable Public part As String = ""