.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
Gaurav Pal
Post New Web Links

Serialize a Class's properties as XML Attributes instead if Elements

Posted By:      Posted Date: October 12, 2010    Points: 0   Category :.NET Framework

Say you have a 3rd party provided assembly with a class like so:

User user = new User();

user.UserId = 1;
user.UserName = "johndoe";
user.Password = "password";


When serialized with the XmlSerializer it comes out something like this:


View Complete Post

More Related Resource Links

Abstract class properties work when not implemented?

Hi, I was just looking at a code example and was confused by the behavior of classes implementing an abstract class. So the project has an abstract class named GeneralItem with some abstract properties. Another class named NspItem inherits GeneralItem. NspItem does not implement any of the abstract properties from GeneralItem yet I can write code that successfully sets those properties. How is that working? Is the compiler automatically creating them for me? Example: public abstract class GeneralItem { public string Description { get; set; } } public class NspItem : GeneralItem { public NspItem() { } } static class Program { [STAThread] static void Main() { NspItem item = new NspItem(); item.Description = "Some String"; Console.WriteLine(item.Description); } } //Output would be: Some String

XmlSerializer - how to define class to not generate attributes in root element?

Hi! I have simple class that I serialize to xml file: <?xml version="1.0" encoding="utf-8"?> <MyRootElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Area="East">   <Products>     <SalesProduct Taxable="true">       <Name>Sofa</Name>     </SalesProduct>     <Product>       <Name>Television</Name>     </Product>   </Products> </MyRootElement> I don`t want have in xml file attributes xmlns:xsi and xmlns:xsd. How can I define class to not have these two attributes in xml file? I tried use XmlRoot attribute but there is no control for these two attributes. They are always generated. Regards

All data in class properties disappear across WCF service

Hi, I have a class that i share betwee silverlight client and wcf service. I populate properties of the class with real data from the client, to be used in the server. I use debugger to step through the code when the call gets to the server, all the data ara gone and are replaced with null. All DateTime value change to 1/1/1001. But if pass primitive types such as int, string, no problem. This is happening only on one machine, but not on ther machine. Can someone tell me what is going on here? Thanks in advance

Can you Serialize a Derived class, cast as it's base?

Can you Serialize a Derived class, cast as it's base? (Using the stock XmlSerializer.Serialize?)   (The overall goal I'm trying to achieve, is I have 1 object, and I need to serialize it in 2 different ways, 1 with full info, one with half info, and I *thought* a base class would be the way to do it)   e.g. I have a base and derived class   [XmlRoot("MyBaseXml" )] public class MyBaseClass { public string baseField = "base" ; } [XmlRoot("MyDerivedXml" )] public class MyDerviedClass : MyBaseClass { public string derivedField = "derived" ; }   I make a new instance of my derived class MyDerviedClass obj = new MyDerivedClass();   And then I have the following serialization method(s)   /// <summary> /// Saves an object to a file /// </summary> /// <param name="obj"> Object to save</param> /// <param name="fileName"> Path to output to</param> public void Serialize(object obj, string fileName) { Type type = obj.GetType(); XmlSerializer xmlSerializer = new XmlSerializer(type); Serialize(obj, fileName, type); } /// <summary> /// Saves an object to a file casting it as a specific type /// </summary> /// <param name="obj"> Object to save</param> /// <param name="fileName"

Deserialize xml elements with attributes

Hi. How can I deserialize xml elements with attributes to a simple class using XmlSerializer ? Xml contains list of elements as so.     <elementGroups> <element unit="lbs">140</element> <element unit="kts">3040</element> <element unit="m">1003</element> </elementGroups>   The Element class should by like this.     public class Element { [ ????("value")] public decimal Value{ get; set; } [XmlAttribute("unit")] public string Unit{ get; set; } }   is there any elegant way to do this ?  thanks..    

Can serialize but not deserialize class containing an xs:list attribute using XmlSerializer

I have a simple serializable class along the lines of: [Serializable] [XmlType] public class MyClass { [XmlAttribute("values")] public int[] Values { get; set; } } If I create an instance of this class with Values set to an empty collection the XmlSerializer class produces this output as expected: <?xml version="1.0" encoding="utf-16" ?> <MyClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" values="" /> However, deserializing this exact output throws a System.FormatException: Input string was not in a correct format. Shouldn't the XmlSerializer be able to deserialize this, since it produced the xml string in the first place?

Changing Properties/Attributes of a Webpart in inline code block - Error 'System.Web.UI.WebControl

I'm trying this code below, but gettting error: System.Web.UI.WebControls.WebParts.WebPart' does not contain a definition for 'FilterValue1' I need to change the value of the FilterValue1 properties of a content Query WebPart with title = Applicant Files. Thanks in Advance!
protected override void OnLoad(EventArgs e) {  base.OnLoad(e); SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite SiteCollection = new SPSite("https://somesite/")) { SPWeb myWeb = SiteCollection.OpenWeb(); myWeb.AllowUnsafeUpdates = true; Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager mgr = null; mgr = myWeb.GetLimitedWebPartManager("default.aspx",System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared); foreach (System.Web.UI.WebControls.WebParts.WebPart myWebPart in mgr.WebParts) { if (myWebPart.Title == "Applicant Files") { myWebPart.FilterValue1 = "/13"; mgr.SaveChanges(myWebPart); break; } } } }); }

Some Useful Properties of Binding Class

When binding the UI control with the data source the Binding class has some useful properties.In this post we will look at them and use them in sample application. The properties which we are going to discuss in this post are the FallbackValue ,TargetNullValue, and StringFormat. Image 1 shows the output of the example code.

Some help needed for creating a new "struct" to represent elements of a class in a different way....

I'm working on an existing project, where a class is defined as follows:  public class Stat { public DateTime? Date { get; set; } private Dictionary<string, int> _pageViews; public Dictionary<string, int> PageViews { get { if (this._pageViews == null) this._pageViews = new Dictionary<string, int>(); return this._pageViews; } } where the dictionary will store, for each entry, the name of a browser (string) and the # number of pagevisits using that browser(int). So basically, it's like a database table with 3 fields {Date, browser, count} (Each instance of the class is like a record within the table).   What I'm looking for is a way to create a new structure in which the pair {browser- Date/Count}  becomes the PK in DB terms.   Browser        Date                Count--------------------------------------------- Firefox         08/08/2010         20Firefox         08/09/2010         12IE                08/08/2010    

Assign values to base class properties


In my controller have a FormViewModel which inherits from a domain class declared in dbml.  In the constructor of the FormViewModel I want to do a shorthand assignment to the inherited class properties with the passed in object (ie thisPerson) without iterating through each property of the inherited class and assigning its value with corresponding property in the passing in object. Should I use super, base, this, or something else?

public MyFormViewModel: Person
  public SelectList Cities {get; private set;}
  public SelectList State {get; private set;}

  public MyFormViewModel(){}

  public MyFormViewModel(Person thisPerson) 

        this = thisPerson; 
     //or super = thisPerson;
     //base = thisPerson;


Do not want to serialize some of activity run-time properties


Hi there,

Is there a way to to turn off the serialization for some of the activity properties?

Below is the code snippet

 public sealed class MyActivity : CodeActivity
    // Do not want to serialize this property on the XAML file
    public bool MyRunTimeProperty


How to create a Class with List<> as properties



I need some help for the above.


I need to read filenames into a List  inside a class.


Example :

1) How to read or get the value into the PhotoNameCollection Class in foreach statement below?


2) How to create a class with List<> as properties and How to do the get and set statement ? Is the below class okk?


 foreach (var pic in PicNames)

     //-- get the filename and add it into the class with List<>


  public class PhotoNameCollection  //<--- Can be Static Class
        private List<string> g_Photoname

        public List<string> PhotoName



Trouble showing class properties


I'm sorry in advance if my explanation isn't very clear. It's a bit hard to put to words what I'm trying to accomplish. That said here we go...

Does anybody know how to show class properties after instantiating the class in code? I have a class Employee and when I type a '.' after the employee object I see a list of properties and functions. The problem comes when I select a property that itself has additional properties.

Employee x = new Employee();

//when i type the '.' after the object "x" I see a list that has "ID," "Department," and "ListOfItems."

x.ID = 10;
x.Department = "Sales"

//I should see a list of properties when i type '.' after the property "ListOfItems" and I do not.

If I enter a valid property of the "ListOfItems" collection class it will let me view the value, but I'd like to see the list none the less.

Any help would be greatly appreciated. Thanks in advance!




I am trying to learn how to pass a JavaScript object to a server side class and have been successful when it is a simple JavaScript object.  

Suppose I have this Person class:

public class Person
  public string FirstName { get; set; }
  public string LastName { get; set; }
  public string Address { get; set; }
  public string City { get; set; }
  public string Zip { get; set; }

And this web service method:

  public void AddPerson(Person NewPerson)

On the client I can create a JavaScript object like the one below and then pass it to the server. On the server side the Person class will have all properties populated by the values in the JavaScript object.

"{"NewPerson":{"FirstName":"Jon","LastName":"Doe","Address":"15 Stanley Road","City":"AnyCity","State":"AnyState","Zip":"55555"}}"

This all works fine and as you can see the JavaScript object and the Person class have no collection (array) properties.  

However, I would like my Person class to have a collection of phone number. So I person could have a home

.asmx/js missing custom class properties


I have a web method that accepts a class of type Person and simply returns back the same person. I am trying to call this method from an AJAX client. The issue is that the properties of my Person class do not seem to be rendering within the client proxy Person class that is created when accessing MyWebService.asmx/js. Can anyone see what is wrong here?


using System;
using System.Runtime.Serialization;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebApplication2
public class Person
public Person(){}

public string Name { get; set; }

/// <summary>
/// Summary description for WebService1
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService1 : System.Web.Services.WebService
public Person EchoPerson(Person person)
return person;


How to set view properties from another class/interface


There is a SearchPage which has a properties ErrorMessage, SuccessMessage etc. This is basically a MVP pattern so for each page(view) there is IView that contains definitions for all the properties

I am using decoratoe pattern to set these peoperties dependingon the message type. There is another Interface IBaseMessage which has a method DisplayMessage() and a class BaseMessage which implements the interface. This class has a definition of the view

Interface IbaseMessage






public Iview _view{get; set;}



_view.Warning ="<message>"



Here, I am not able to set the message to the view properties. I am getting the error as "Object reference not set to an instance of the object"

Somehow the access is not going till theview from the class BaseMessage. I may be missing something. Please help

Appreciate your help!


Question on WorkflowApplication class design ( Func Properties)





I found out that the Workflow Application class offers Func<T> properties to inject code for example when a error occurs.

whats the reason behind the Design Decission of giving the WorkFlow Foundation class Func<T> properties instead of event?


For Example


 Func<WorkflowApplicationUnhandledExceptionEventArgs, UnhandledExceptionAction> OnUnhandledException { get

; set

; }





 Action<WorkflowApplicationCompletedEventArgs> Completed { get

; set

; }


Is it just to prevent the multiple receipients ?

Or is it related to memory mangement due to fix pins caused by eventhandlers ? To be honest i must confess that i'm not sure wether Func<T> will created a fix pin in memory :-(

I'm not sure about if this is good or not, but it would be very nice to get knowledge of the reason why this class is event

ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend