Wednesday, October 17, 2012

Getting deserialized object from the xml string

 public static T DeserializeFromXml<T>(string xml)
        {
            T result;
            XmlSerializer ser = new XmlSerializer(typeof (T));
            using (TextReader tr = new StringReader(xml))
            {
                result = (T) ser.Deserialize(tr);
            }
            return result;
        }

Getting xml serialization in string c#, a usefule method, a generic method

public static string ToXml(object Obj)
        {
            XmlSerializer ser = new XmlSerializer(Obj.GetType());
            string xml;
 
            using (MemoryStream memStream = new MemoryStream())
            {
                XmlTextWriter xmlWriter = new XmlTextWriter(memStream, Encoding.UTF8);
                xmlWriter.Formatting = Formatting.Indented;
                xmlWriter.Indentation = 1;
                xmlWriter.IndentChar = Convert.ToChar(9);
                ser.Serialize(xmlWriter, Obj);
                xmlWriter.Close();
                memStream.Close();
                xml = Encoding.UTF8.GetString(memStream.GetBuffer());
                xml = xml.Substring(xml.IndexOf(Convert.ToChar(60)));
                xml = xml.Substring(0, (xml.LastIndexOf(Convert.ToChar(62)) + 1));
            }
            return xml;
        }

Sending xml data to other asp.net page in Request Inputsstream object

http://dotnetslackers.com/Community/blogs/haissam/archive/2007/11/26/ways-to-pass-data-between-webforms.aspx






1- Query String
2- Cookies
3- Session variables
4- Cross Page Posting
5- Submit form
6- Server.Transfer or Server.Execute

We will talk in details about each one and which kind of data it could store.

1- Querystrings: Using Query string variables, you can pass data between webforms. below is an example

Ex: Suppose you want to pass the TextBox1.Text variable from WebForm1 to WebForm2 on button click event.

protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("WebForm2.aspx?id=" + TextBox1.Text);
}

To Read the value of "id" in WebForm2, you should use the below code
string queryStringID = Request.QueryString["id"];

Now queryStringID will hold the data from the querystring.


2- Cookies: AS you might already know, cookies are small text files stored in the client machine. Cookies can only store up to approximately 4 kbs.
Once the cookie is stored into the client machine, each request from the client to your application, the web browser will look for the cookie and send it via the Request Object.

Ex: To store a value of TextBox1.Text inside the cookie use the below code

protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie cookie = new HttpCookie("UserName");
cookie.Value = TextBox1.Text;
cookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(cookie);
Response.Redirect("WebForm2.aspx");
}
Now in webform2 page_load event, you should write the below code to get the value

if(Request.Cookies["UserName"] != null)
Response.Write(Request.Cookies["UserName"].Value);

3- Session Variables: By default, session variables are stored in the webserver's memory. Session variables are unique per each user.

Ex: To store a value inside a session variable use the below code

protected void Button1_Click(object sender, EventArgs e)
{
Session["UserName"] = TextBox1.Text;
Response.Redirect("WebForm2.aspx");
}

To retrieve the value from WebForm2 use the below code

Response.Write(Session["UserName"]);