public object Clone() { return new User(this); } public void ToXml(XmlWriter writer) { writer.WriteStartElement("user"); writer.WriteElementString("username", this.Username); writer.WriteElementString("password", this.Password); this.Metadata.ToXml(writer); writer.WriteEndElement(); } public Newtonsoft.Json.Linq.JObject Data { get { JObject j = new JObject { {"username", this.Username}, {"password", this.Password}, {"metadata", ((IData) (this.Metadata)).Data} }; return j; } } public void ToJson(Newtonsoft.Json.JsonWriter writer) { writer.WriteStartObject(); writer.WritePropertyName("username"); writer.WriteValue(this.Username); writer.WritePropertyName("password"); writer.WriteValue(this.Password); this.Metadata.ToJson(writer); writer.WriteEndObject(); }