Fantastic!  Using the DataContractSerializer solved my problem.

Many thanks!

On Mar 19, 6:37 pm, Mauricio Scheffer <[email protected]>
wrote:
> Maybe this can help 
> :http://stackoverflow.com/questions/1958684/nhibernate-how-do-i-xmlser...
>
> Cheers,
> Mauricio
>
>
>
>
>
>
>
> On Mon, Mar 19, 2012 at 8:32 PM, Michael <[email protected]> wrote:
> > Active record requires collections to be IList<T>, which I can't seem
> > to deserialize.  Does anyone have any suggestions to modify my AR
> > classes (or serialization/deserialization code) to allow me to
> > serialize/deserialize these AR classes?
>
> >    [Serializable]
> >    [DataContract]
> >    [ActiveRecord("Patients")]
> >    public class Patient : ActiveRecordBase<Patient>
> >    {
> >        [DataMember]
> >        [PrimaryKey(Generator = PrimaryKeyType.Identity, Column =
> > "PatientId")]
> >        public virtual long Id { get; set; }
>
> >        [DataMember]
> >        [Property(NotNull = true, Length = 100)]
> >        public virtual string First { get; set; }
>
> >        [DataMember]
> >        [Property(NotNull = true, Length = 100)]
> >        public virtual string Last { get; set; }
>
> >        [DataMember]
> >        [XmlArray]
> >        [HasMany(typeof(Address), Cascade =
> > ManyRelationCascadeEnum.AllDeleteOrphan, Table = "Addresses",
> > ColumnKey = "PatientId", Inverse = true)]
> >        public virtual IList<Address> Addresses { get; set; }
> >     }
>
> >    [Serializable]
> >    [DataContract]
> >    [ActiveRecord("Addresses")]
> >    public class Address : ActiveRecordBase<Address>
> >    {
> >        [DataMember]
> >        [PrimaryKey(Generator = PrimaryKeyType.Identity, Column =
> > "AddressId")]
> >        public virtual long Id { get; set; }
>
> >        [DataMember]
> >        [Property(NotNull = true, Length = 255)]
> >        public virtual string Address1 { get; set; }
>
> >        [DataMember]
> >        [Property(NotNull = true, Length = 255)]
> >        public virtual string City { get; set; }
>
> >        [DataMember]
> >        [Property(NotNull = true, Length = 10)]
> >        public virtual string PostalCode { get; set; }
>
> >        [DataMember]
> >        [Property(NotNull = true, Length = 50)]
> >        public virtual string State { get; set; }
> >    }
>
> > Here's my code to serialize & deserialize:
>
> >        public static string Serialize(object objectToSerialize)
> >        {
> >            var ns = new XmlSerializerNamespaces();
> >            ns.Add(String.Empty, String.Empty);
>
> >            var memoryStream = new MemoryStream();
> >            var settings = new XmlWriterSettings {Indent = false,
> > OmitXmlDeclaration = true, Encoding = Encoding.UTF8};
>
> >            var serializer = new XmlSerializer(typeof(T));
> >            var writer = XmlWriter.Create(memoryStream, settings);
> >            serializer.Serialize(writer, objectToSerialize, ns);
>
> >            return Utf8ByteArrayToString(memoryStream.ToArray());
> >        }
>
> >        public static object Deserialize(string objectXml, Type[]
> > additionalTypes)
> >        {
> >            var encoding = new UTF8Encoding();
> >            var byteArray = encoding.GetBytes(objectXml);
>
> >            var memoryStream = new MemoryStream(byteArray);
> >            var xmlRoot = XElement.Load(memoryStream);
>
> >            var o = new XmlSerializer(typeof(T),
> > additionalTypes).Deserialize(xmlRoot.CreateReader());
> >            return o;
> >        }
>
> > Thanks!
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Castle Project Users" group.
> > To post to this group, send email to [email protected]
> > .
> > To unsubscribe from this group, send email to
> > [email protected].
> > For more options, visit this group at
> >http://groups.google.com/group/castle-project-users?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to