RestSharp.Serializers.XmlSerializer.Serialize C# (CSharp) Method

Serialize() public method

Serialize the object as XML
public Serialize ( object obj ) : string
obj object Object to serialize
return string
        public string Serialize(object obj)
        {
            var doc = new XDocument();

            var t = obj.GetType();
            var name = t.Name;

            var options = t.GetAttribute<SerializeAsAttribute>();
            if (options != null) {
                name = options.TransformName(options.Name ?? name);
            }

            var root = new XElement(name.AsNamespaced(Namespace));

            if (obj is IList)
            {
                var itemTypeName = "";
                foreach (var item in (IList)obj)
                {
                    var type = item.GetType();
                    var opts = type.GetAttribute<SerializeAsAttribute>();
                    if (opts != null)
                    {
                        itemTypeName = opts.TransformName(opts.Name ?? name);
                    }
                    if (itemTypeName == "")
                    {
                        itemTypeName = type.Name;
                    }
                    var instance = new XElement(itemTypeName);
                    Map(instance, item);
                    root.Add(instance);
                }
            }
            else
                Map(root, obj);

            if (RootElement.HasValue()) {
                var wrapper = new XElement(RootElement.AsNamespaced(Namespace), root);
                doc.Add(wrapper);
            }
            else {
                doc.Add(root);
            }

            return doc.ToString();
        }

Usage Example

        public void Can_serialize_simple_POCO_With_Attribute_Options_Defined()
        {
            var poco = new WackyPerson {
                Name = "Foo",
                Age = 50,
                Price = 19.95m,
                StartDate = new DateTime(2009, 12, 18, 10, 2, 23)
            };

            var xml = new XmlSerializer();
            var doc = xml.Serialize(poco);
            var expected = GetSimplePocoXDocWackyNames();

            Assert.Equal(expected.ToString(), doc.ToString());
        }
All Usage Examples Of RestSharp.Serializers.XmlSerializer::Serialize