{"id":4498,"date":"2024-03-14T01:32:32","date_gmt":"2024-03-14T01:32:32","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/"},"modified":"2025-07-31T08:48:09","modified_gmt":"2025-07-31T08:48:09","slug":"how-to-serialize-and-deserialize-objects-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/","title":{"rendered":"C# Object Serialization: Complete Guide"},"content":{"rendered":"<p>In C#, serialization and deserialization of objects can be achieved by utilizing the DataContractSerializer class in the System.Runtime.Serialization namespace.<\/p>\n<p>Example code for serializing objects:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">using<\/span> System;\r\n<span class=\"hljs-keyword\">using<\/span> System.IO;\r\n<span class=\"hljs-keyword\">using<\/span> System.Runtime.Serialization;\r\n\r\n[<span class=\"hljs-meta\">DataContract<\/span>]\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Person<\/span>\r\n{\r\n    [<span class=\"hljs-meta\">DataMember<\/span>]\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-built_in\">string<\/span> Name { <span class=\"hljs-keyword\">get<\/span>; <span class=\"hljs-keyword\">set<\/span>; }\r\n    \r\n    [<span class=\"hljs-meta\">DataMember<\/span>]\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-built_in\">int<\/span> Age { <span class=\"hljs-keyword\">get<\/span>; <span class=\"hljs-keyword\">set<\/span>; }\r\n}\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Program<\/span>\r\n{\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">Main<\/span>()<\/span>\r\n    {\r\n        Person person = <span class=\"hljs-keyword\">new<\/span> Person { Name = <span class=\"hljs-string\">\"Alice\"<\/span>, Age = <span class=\"hljs-number\">30<\/span> };\r\n\r\n        DataContractSerializer serializer = <span class=\"hljs-keyword\">new<\/span> DataContractSerializer(<span class=\"hljs-keyword\">typeof<\/span>(Person));\r\n        <span class=\"hljs-keyword\">using<\/span> (FileStream stream = <span class=\"hljs-keyword\">new<\/span> FileStream(<span class=\"hljs-string\">\"person.xml\"<\/span>, FileMode.Create))\r\n        {\r\n            serializer.WriteObject(stream, person);\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Example code for deserializing objects:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">using<\/span> System;\r\n<span class=\"hljs-keyword\">using<\/span> System.IO;\r\n<span class=\"hljs-keyword\">using<\/span> System.Runtime.Serialization;\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Program<\/span>\r\n{\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">Main<\/span>()<\/span>\r\n    {\r\n        DataContractSerializer serializer = <span class=\"hljs-keyword\">new<\/span> DataContractSerializer(<span class=\"hljs-keyword\">typeof<\/span>(Person));\r\n        <span class=\"hljs-keyword\">using<\/span> (FileStream stream = <span class=\"hljs-keyword\">new<\/span> FileStream(<span class=\"hljs-string\">\"person.xml\"<\/span>, FileMode.Open))\r\n        {\r\n            Person person = (Person)serializer.ReadObject(stream);\r\n            Console.WriteLine(<span class=\"hljs-string\">$\"Name: <span class=\"hljs-subst\">{person.Name}<\/span>, Age: <span class=\"hljs-subst\">{person.Age}<\/span>\"<\/span>);\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the code above, the Person class uses DataContract and DataMember attributes to denote the properties that need to be serialized, and then uses the DataContractSerializer class to serialize the object into an XML file or deserialize it from an XML file into an object.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C#, serialization and deserialization of objects can be achieved by utilizing the DataContractSerializer class in the System.Runtime.Serialization namespace. Example code for serializing objects: using System; using System.IO; using System.Runtime.Serialization; [DataContract] public class Person { [DataMember] public string Name { get; set; } [DataMember] public int Age { get; set; } } class Program { [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[4151,4148,381,4149,4150],"class_list":["post-4498","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-net-development","tag-c-serialization","tag-c-programming","tag-datacontractserializer","tag-object-serialization"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C# Object Serialization: Complete Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn C# object serialization using DataContractSerializer with practical examples and step-by-step instructions.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C# Object Serialization: Complete Guide\" \/>\n<meta property=\"og:description\" content=\"Learn C# object serialization using DataContractSerializer with practical examples and step-by-step instructions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T01:32:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T08:48:09+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olivia Parker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"C# Object Serialization: Complete Guide\",\"datePublished\":\"2024-03-14T01:32:32+00:00\",\"dateModified\":\"2025-07-31T08:48:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/\"},\"wordCount\":81,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\".NET development\",\"C# serialization\",\"C++ Programming\",\"DataContractSerializer\",\"object serialization\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/\",\"name\":\"C# Object Serialization: Complete Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T01:32:32+00:00\",\"dateModified\":\"2025-07-31T08:48:09+00:00\",\"description\":\"Learn C# object serialization using DataContractSerializer with practical examples and step-by-step instructions.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# Object Serialization: Complete Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C# Object Serialization: Complete Guide - Blog - Silicon Cloud","description":"Learn C# object serialization using DataContractSerializer with practical examples and step-by-step instructions.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/","og_locale":"en_US","og_type":"article","og_title":"C# Object Serialization: Complete Guide","og_description":"Learn C# object serialization using DataContractSerializer with practical examples and step-by-step instructions.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T01:32:32+00:00","article_modified_time":"2025-07-31T08:48:09+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"C# Object Serialization: Complete Guide","datePublished":"2024-03-14T01:32:32+00:00","dateModified":"2025-07-31T08:48:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/"},"wordCount":81,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":[".NET development","C# serialization","C++ Programming","DataContractSerializer","object serialization"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/","name":"C# Object Serialization: Complete Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T01:32:32+00:00","dateModified":"2025-07-31T08:48:09+00:00","description":"Learn C# object serialization using DataContractSerializer with practical examples and step-by-step instructions.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-serialize-and-deserialize-objects-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C# Object Serialization: Complete Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=4498"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4498\/revisions"}],"predecessor-version":[{"id":149165,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4498\/revisions\/149165"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=4498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=4498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=4498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}