<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
I am unsure if this is what you are looking for however,<br>
Treating the widgets as objects, its quite common that one wants to
serialize an object that has non serializable fields.<br>
You have to implement the ISerializable interface and --in its only
method- <br>
<pre class="syntax"><b>void GetObjectData(
   </b><a
 href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemruntimeserializationserializationinfoclasstopic.asp">SerializationInfo</a><b> </b><i>info</i><b>,</b>
<b>   </b><a
 href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemruntimeserializationstreamingcontextclasstopic.asp">StreamingContext</a><b> </b><i>context</i>
<b>);</b></pre>
then you info.AddValue( string field_name, object_type) all of the
fields of the class with their respective names.<br>
What is implicitly documented is that you have to implement a
constructor Constructor(<b>SerializationInfo</b> info, <a
 href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemruntimeserializationstreamingcontextclasstopic.asp">StreamingContext</a>
context) in your class that is called by the runtime during
deserialization and retrieves the stored fields using the info.GetXXX
methods.<br>
Since this method describes all serialization details, using the same
runtime its guaranteed to work.<br>
<br>
Rafael Ferreira wrote:
<blockquote cite="mid42EE1985.90806@ophion.org" type="cite">Alfredo
Jose Muela Romero wrote:
  <br>
  <br>
  <blockquote type="cite">El Sun, 31 Jul 2005 17:48:21 -0700
    <br>
Rafael Ferreira <a class="moz-txt-link-rfc2396E" href="mailto:lists@ophion.org">&lt;lists@ophion.org&gt;</a> escribió:
    <br>
    <br>
 
    <br>
    <br>
    <blockquote type="cite">Crazy question but can you explain to me
why would you want to do
      <br>
that?    <br>
    </blockquote>
    <br>
    Sure.
    <br>
    <br>
    The point is that I'm developing a program in which the GUI is
    <br>
generated dinamically (i.e. widgets come and go with the user
    <br>
interaction) so one of my business classes contains an array of
    <br>
Gtk.Widgets (the ones which are added to the interface). So, somehow, I
    <br>
need to keep this info for the next restarting of the program (in order
    <br>
to keep the interface as the user wanted before stopping the program).
    <br>
At this point the choices were:
    <br>
    <br>
    1) Back-up the object at a OODB
    <br>
    2) Back-up the data at tables in a RDB
    <br>
    3) Make a config file where I put the needed info to reconstruct
the
    <br>
objects (with the widgets) at starting time
    <br>
    4) Serialize the objects before stopping the program and
deserialize
    <br>
them at starting.
    <br>
    <br>
    And, well, you know my choice.
    <br>
    <br>
    Any suggestions and/or advices will be welcomed.
    <br>
    <br>
    <br>
            Alfredo.
    <br>
    <br>
 
    <br>
    <br>
    <blockquote type="cite">- raf
      <br>
      <br>
On Sun, 2005-07-31 at 19:46 +0200, Alfredo Jose Muela Romero wrote:
      <br>
   <br>
      <blockquote type="cite">    Hi everybody,
        <br>
        <br>
    I'm new to this list, I have look up the answer to my question
        <br>
    trough
        <br>
the list's files but I haven't found it so I'll make it: how can I
        <br>
make it to serialize an object which contains an array of
        <br>
Gtk.Widgets since for serializing I need to mark the classes with
        <br>
[Serializable]? In other words, how can I serialize an object with
        <br>
3rd party objects whithin?
        <br>
        <br>
    Thanks in advance,
        <br>
        <br>
        <br>
                Alfredo.
        <br>
_______________________________________________
        <br>
Mono-devel-list mailing list
        <br>
<a class="moz-txt-link-abbreviated" href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a>
        <br>
<a class="moz-txt-link-freetext" href="http://lists.ximian.com/mailman/listinfo/mono-devel-list">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a>
        <br>
     <br>
      </blockquote>
_______________________________________________
      <br>
Mono-devel-list mailing list
      <br>
<a class="moz-txt-link-abbreviated" href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a>
      <br>
<a class="moz-txt-link-freetext" href="http://lists.ximian.com/mailman/listinfo/mono-devel-list">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a>
      <br>
   <br>
    </blockquote>
_______________________________________________
    <br>
Mono-devel-list mailing list
    <br>
<a class="moz-txt-link-abbreviated" href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a>
    <br>
<a class="moz-txt-link-freetext" href="http://lists.ximian.com/mailman/listinfo/mono-devel-list">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a>
    <br>
 
    <br>
    <br>
  </blockquote>
What you're trying to accomplish is impossible. first because gtk
widgets are not serializable and secondly, it just sounds like a bad
idea all together :-). In order for you to serialize an array of
anything the entire object graph needs to be serializable, so if you
wrap a gtk widget in a class that is ISerializable, it will still fail
since the widget isn't.
  <br>
  <br>
I suggest you look into Monodevelop's settings code to get a sense of
how MD is persisting the user UI preferences and reconfiguring it at
start up.
  <br>
  <br>
  <br>
my 2 cents,
  <br>
  <br>
- raf
  <br>
  <br>
  <br>
  <br>
_______________________________________________
  <br>
Mono-devel-list mailing list
  <br>
<a class="moz-txt-link-abbreviated" href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a>
  <br>
<a class="moz-txt-link-freetext" href="http://lists.ximian.com/mailman/listinfo/mono-devel-list">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a>
  <br>
  <br>
</blockquote>
</body>
</html>