[Mono-list] using DataContractSerializer on Objects with read only fields

ptr2009 ptrajkumar at gmail.com
Wed Dec 2 16:48:44 EST 2009


hey all

  I am attaching a small sample illustrating my problem. I have a simple
Object that has few readonly
fields with DataMember. 

Under mono 2.4.2.3 I get the following exception ?

Unhandled Exception:
System.Runtime.Serialization.InvalidDataContractException: DataMember field
System.String name must not be read-only.


The Program runs without errors under .NET 3.5. Is this a known issue ?

Thanks
Raj

-------------------------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.IO;

namespace TestApp
{
    [DataContract]
    public class Person
    {
        [DataMember]
        readonly public string name;

        [DataMember]
        readonly public Guid Id = Guid.Empty;

        public Person(string nameIn, Guid idIn)
        {
            name = nameIn;
            Id = idIn;
        }

        public override string ToString()
        {
            return string.Format("name={0},id={1}", name, Id);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {

            Person p1 = new Person("UserName", Guid.NewGuid());
            Console.WriteLine("Person 1 " + p1.ToString());
            MemoryStream memStream = new MemoryStream();
            DataContractSerializer ser =  new
DataContractSerializer(typeof(Person));
            ser.WriteObject(memStream, p1);
            memStream.Seek(0, SeekOrigin.Begin);
            Person p2 = (Person) ser.ReadObject(memStream);
            Console.WriteLine("Person 2 " + p2.ToString());
            Console.ReadLine();
        }
    }
}

------------------------------------------------------------------------------------------------   
-- 
View this message in context: http://old.nabble.com/using-DataContractSerializer-on-Objects-with-read-only-fields-tp26617064p26617064.html
Sent from the Mono - General mailing list archive at Nabble.com.



More information about the Mono-list mailing list