[Mono-bugs] [Bug 76235][Wis] Changed - Mono/.NET interoperability
of System.Collections.Specialized
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Mon Oct 10 07:38:46 EDT 2005
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by svetlanaz at mainsoft.com.
http://bugzilla.ximian.com/show_bug.cgi?id=76235
--- shadow/76235 2005-10-09 22:09:25.000000000 -0400
+++ shadow/76235.tmp.7284 2005-10-10 07:38:46.000000000 -0400
@@ -49,6 +49,35 @@
------- Additional Comments From robertj at gmx.net 2005-10-09 22:09 -------
You cannot simply add ISerializable to the inheritance
list of ListDictionary and HybridDictionary, because
it breaks the API compatibility with MSFT's runtime.
+
+------- Additional Comments From svetlanaz at mainsoft.com 2005-10-10 07:38 -------
+Hi all,
+The compatibility of the inner representation of the Mono and .NET
+classes is very important, and, in some cases, we need to break API
+compatibility to achieve it. If a class is not implement
+ISerializable interface and it has different from .NET inner
+structure, we have a problem with interoperability, specially in
+remoting, where the server and the client can run on different
+machines with different runtimes. This problem raises not only in the
+System.Collection.Specialized namespace, and we should make a global
+decision about an our behavior in this case.
+For example, one of the possible solutions is to add some new
+attribute to the Serializable class (for instance,
+MonoSerializationCompatibilityAttribute) and the Mono runtime will
+treat such class in the same manner as ISerializable, but outside to
+the clients the class will be seen as regular serializable class
+according to the .NET API. This solution requires changes in the
+Mono's runtime. Another possibility is to change implementation of
+the class to be fully compatible with implementation in .NET. In the
+HybridDictionary class, for example, we should return the previous
+version of the class and treat Hashtable and List as two separate
+fields. Another alternative is to break the API compatibility and
+implement the ISerializable interface to manage the serialization
+info, as I made.
+What strategy is appropriate? Any other ideas?
+
+Thanks,
+Svetlana
More information about the mono-bugs
mailing list