C# - Exclude An Object During Serialization In XmlSerialize?
Mar 7, 2011
I'm attempting to serialize an object but I would like to exclude one of the objects inside it. I've tried [NonSerialized] and it is still attempting to serialize it when I call XmlSerialize on a Cart object.
[Serializable]
[XmlRoot("Cart")]
public class Cart : ICart
{
// Public Properties
[DefaultValue("")]
public string ID { set; get; }
[XmlIgnore()]
[NonSerialized]
public CartSerializer Serializer = new CartSerializer(this);
}
I want to put POCO object to Velocity cache. How can I serializable ICollection to Velocity cache, or exclude ICollection from serialization?
I got this exception
Type 'System.Collections.Generic.ICollection`1[Model.Collection]' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute. If the type is a collection, consider marking it with the CollectionDataContractAttribute. See the Microsoft .NET Framework documentation for other supported types.
I have a object of Class named "Employee" I need to store the object in the session. what happens if i do not serialize the object and store in the session.
I have created a WCF Rest API Service using wcf rest starter kit preview 2 which automatically return JSON or XML data depending on the requested content type. everything is working fine but as my service methods return multiple data type some methods returns a object of a class or collection of class, bool, int or collection type. so I planed to return a same Response in all methods for this I Create a new class as following:
[DataContract(Namespace = "")] public class ServiceResponse { [DataMember] public bool IsError { get; set; } [DataMember] public string ResponseMessage { get; set; } [DataMember] public Object ResponseData { get; set; } }
and User class as following:
[DataContract(Namespace = "")] public class User { [DataMember] public string UserName { get; set; } [DataMember] public int UserID { get; set; } }
In ServiceResponse Class I have declared an Object Type property ResponseData and my all method has return type of ServiceResponse. My problem is that when I set any string,bool,int type as ResponseData it is serialized but when I set collection type or an object of another class which also has DataContarct attribute this class is not serialized see below code :
public ServiceResponse GetUser(int userID) { User user = getUser(userID); get user data from database ServiceResponse response=new ServiceResponse(); var response = new ServiceResponse { IsError = false, ResponseMessage = string.Empty, ResponseData = user; // Setting Result Data here }; return response; }
when I called above method(GetUser) I got Null response due to serialization problem, but following code works fine
public ServiceResponse TestMethod(string testMessage) { ServiceResponse response=new ServiceResponse(); var response = new ServiceResponse { IsError = false, ResponseMessage = string.Empty, ResponseData = testMessage; // Setting Result Data here }; return response; }
I am using business objects that are accessed via webservices. These objects can be loaded via the webservice and serialized to my mvc app. The mvc app can get a web reference to the objects and they can be utilized in the mvc app. However, the business objects are where the classes are defined, and where the annotations are applied.
The mvc validation seems to have no idea that there are System.ComponentModel.DataAnnotations attributes applied to this business object class.
1) Are DataAnnotations lost when objects are serialized / deserialized?
2) If in mvc I use a view model approach, and have nested objects (which themselves have public properties - decorated with DataAnnotations) can/will the mvc validation system traverse the entire object model, the model being used for my view? (so it can see DataAnnotations attributes of the nested object)?
I'm trying some WCF ajax.net 3.5 out for the first time, and I'm having some difficulties. I have a WCF Service which I have connected to in my aspx page using <asp:ScriptManager>. I have a custom object which has been decorated as a [DataContract]. I'm calling the object from javascript successfully, I can see the JSON response in FireBug, but Sys.Serialization.JavaScriptSerializer.deserialize() chokes on it. I'm sure I'm making a noob mistake, but I used up all my patience getting the Web.Config values right for running the WCF service.
I had an interview Thursday and one questions that I was asked in the technical interview was a little confusing.
First, he asked me about Viewstate and I explained to him what all that entailed.
He then asked me what happens if the data you are putting into the Viewstate gets to big.
I told him you could then use Sessions or start storing things in the Database.
He said, what about Data Compression? I immediately responded by saying, yes you can use Serialization/Deserialization to store/retrieve the data (i'm using that in my open source project).
When he says "Data Compression", is he talking about "Serialization" or is this something different?
Code: public class GroupInfo { private List<Structure> _sectors = new List<Structure>(); [XmlElement("Sector")] public List<Structure> Sectors { get; set; } [XmlElement("Person")] public List<Users> Person { get; set; } [code]...
I want users to be able to export data as an XML file. Of course I want them to be able to later on import that same XML file however they always could change it or it could be a different XML file. So I want to validate the XML file to check if it is in the format that I expect. So I guess I would need something like a schema to check just that it has to be through code. So if I expect
I don't want some other format to be in the file other then the one I expect. Also how would I validate fields? Like say I require that there must be some text in between tags. If it is blank the file is not valid. So how could I do this?
I decided to use XML serialization so I know it will through an exception if it is the wrong format and ignore stuff that does not work. However I am not sure should I just go through it and C# to validate each of the records or should I try to make an xml schema to do it. If I would want to do it through an xml schema with xml serialization how would that work? Like Do I first do something like I seen in the responses then de serialize it? Or how would I do it?
I follow the code snippet to calculate Session size. Profile Memory Usage of Session State ASP.Net My problem is some properties of objects aren't marked as Serializable so I cannot apply the solution. Can I just bypass non-serializable properties?
I am having a lot of trouble with WCF web service over SSL / HTTPS, so I was wondering if (as a quick fix) I could serialize the object, convert that to a byte array, encrypt the array, pass the encrypted array.
On the other side receive the encrypted array, decrypt the array, convert from the array and then deserialize the object.
I have a class that contains an enum property, and upon serializing the object using JavaScriptSerializer, my json result contains the integer value of the enumeration rather than its string "name". Is there a way to get the enum as a string in my json without having to create a custom JavaScriptConverter? Perhaps there's an attribute that I could decorate the enum definition, or object property, with?As an example:
On EDITION form I have only fields: 'title' and 'message' (without field 'link'), but for 'link' is still triggered validation. How can I exclude 'link' from validation in action. I have tried:
[Code]....
But this doesn't work. I still see: "The link field is required.". What is the solution ?
I have been thinking of ways to optimize the out of state storage of sessions within SQL server and a few I ran across are:
Disable session state on pages that do not require the session. Also, use read-only on pages that are not writing to the session.
In ASP.NET 4.0 use gzip compression option.
Try to keep the amount of data stored in the session to a minimum.
Right now, I have a single object (a class called SessionObject) stored in the session. The good news is, is that it is completely serializable.
Optimizing using protobuf-net An additional way I thought might be a good way to optimize the storage of sessions would be to use protocol buffers (protobuf-net) serialization/deserialization instead of the standard BinaryFormatter. I understand I could have all of my objects inherit ISerializable, but I'd like to not create DTO's or clutter up my Domain layer with serialize/deserialize logic.
Thing is, when my service is providing result of type string my client .aspx page is working fine and it gives reference in my code. But now I changed my service to provide custom data type and I can't see service reference in my code, intellisense doesn't offer it at all. What am I missing here? WCFTestClient.exe is giving good results but I can't create my own in VS 2008
what the default serialization used by the ASP.net HttpRuntime.Cache is? Is it Binary, XML, something else?
I am populating a generic List with multiple objects of the same custom type. The custom type is a POCO, there is nothing special about it. All of its properties are public with { get; set; }, it is public, it has no inheritance, it has no interfaces. In fact it is much less complicated than many other objects which we are caching which work without issue. I have tried adding the [Serializable] attribute to the custom class and it has no effect.
I add the list to the cache with a unique key. The list has been verified as populated before it is inserted into the cache, the objects in the list have been verified as populated as well. But when the list is pulled back out of the cache it is an empty list (NOT NULL), it simply has no items in it. This means that the list is being added to the cache and is retrievable but for some reason the cache is having issues serializing the objects in the list.
I just find this freaky weird since I have another list of custom objects which are much more complicated (consisting of Inheritance, Interfaces, and also containing Properties which are generic lists of other complex objects) and the caching of those lists work without issue.
Both the working and non-working list are being managed in C# classes outside of the ASP.net user controls which consume the cached data. Both of these cache handling classes call the exact same Cache Manager class singleton instance which wraps the HttpRuntime.Cache to provide typed methods for pull and pushing objects into the cache.
if I serialize C# automatic properties with soap serialization, generated xml contains ugly element namesfor City property it is <_x003C_City_x003E_k__BackingField id="ref-6">I know that it is because it doesn`t serialize property but generated variable that may have such name.