Let's please file a bug on our bugzilla. I'll have a look. http://mono-project.com/Bugs
Atsushi Eno Blackskyliner wrote: > I serialize this class via the XML Serializer: > > > class XMLStringSerializer > { > public static string Serialize<T>(T entity) > { > return Serialize(entity, true); > } > > public static string Serialize<T>(T entity, bool noNewLine) > { > StringBuilder outputXml = new StringBuilder(); > > if (typeof(T).IsSerializable) > { > XmlSerializer ser = new XmlSerializer(typeof(T)); > using (TextWriter stream = new StringWriter(outputXml)) > { > ser.Serialize(stream, entity); > } > if (noNewLine) > return outputXml.ToString().Replace(Environment.NewLine, > ""); > else > return outputXml.ToString(); > } > > return null; > } > > public static T Deserialize<T>(string xml) > { > T entity; > > if (typeof(T).IsSerializable) > { > XmlSerializer ser = new XmlSerializer(typeof(T)); > using (TextReader stream = new StringReader(xml)) > { > entity = (T)ser.Deserialize(stream); > } > > return entity; > } > > return default(T); > } > } > > > > > > Atsushi Eno-3 wrote: >> Hi, >> >> Your subject implies it is about xml serialization, but it is >> marked as [Serializable]. Which "serialization" do you mean? >> XML serialization, or remoting SOAP serialization? >> >> Atsushi Eno >> >> >> Blackskyliner wrote: >>> Hi I just jumped in into mono I hope I'm in the right forum/mailinglist, >>> because i wrote an little server application that I wanted to run on my >>> linux machine. Its originally written in .NET 2.0 >>> >>> To exchange Messages between Server and Client I use an XML-serialized >>> class.... >>> In .NET I dont get any problems but with mono I get the following >>> exception: >>> >>> There was an error generating the XML document. > The type of the >>> argument >>> object 'ChatClient.serverMessages' is not primitive. >>> >>> I implemented the serverMessage in the following way: >>> >>> using System; >>> using System.Text; >>> >>> namespace ChatClient >>> { >>> [Serializable] >>> public class Message >>> { >>> public Message_StatusCodes statusCode; >>> public messageType messageType; >>> public object message; >>> public DateTime time; >>> public string user; >>> >>> public Message() >>> { >>> init(); >>> } >>> >>> public Message(string Username) >>> { >>> init(); >>> this.user = Username; >>> } >>> >>> private void init(){ >>> this.statusCode = Message_StatusCodes.NULL; >>> this.message = null; >>> this.time = DateTime.Now; >>> this.user = null; >>> this.messageType = messageType.NULL; >>> } >>> >>> public void Clear() >>> { >>> this.statusCode = Message_StatusCodes.NULL; >>> this.messageType = messageType.NULL; >>> this.message = null; >>> this.time = DateTime.Now; >>> this.user = null; >>> } >>> >>> public void Clear(string Username) >>> { >>> this.Clear(); >>> this.user = Username; >>> } >>> >>> public Message(Message_StatusCodes c) >>> { >>> init(); >>> this.statusCode = c; >>> } >>> } >>> >>> public enum Message_StatusCodes >>> { >>> NULL, >>> >>> Login, >>> >>> UserKicked, >>> UserJoined, >>> UserConnected, >>> UserDisconnected, >>> >>> UserListChanged >>> } >>> >>> public enum messageType{ >>> NULL, >>> UserMessage, >>> ServerMessage, >>> ClientMessage >>> } >>> >>> public enum serverMessages >>> { >>> LOGIN_ERROR_UserAlreadyExist, >>> LOGIN_ERROR_UsernameReserved, >>> LOGIN_OK >>> } >>> >>> public enum clientMessages >>> { >>> Disconnect >>> } >>> } >>> >>> >>> Why does this not deserialize in Mono but in C#?? Is there any workaround >>> or >>> smth. else? >>> >>> I'm thankful about every answer... >>> Blackskyliner >> _______________________________________________ >> Mono-list maillist - Mono-list@lists.ximian.com >> http://lists.ximian.com/mailman/listinfo/mono-list >> >> > _______________________________________________ Mono-list maillist - Mono-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-list