Hi,

I am looking at the XmlSerialize class and am bothered by the lack of
node testing (NodeType) in this class.  I am thinking that the
XmlTextReader is a better choice for this very reason
(System.Xml.XmlTextReader.NodeType).  If you can serialize you object
with this class you can test the node type such as:

XmlTextReader objTxtRd;
... definition...
while (objTxtRd.Read())
{
  if((objTxtRd.NodeType==XmlNodeType.Element) ||
    (objTxtRd.NodeType==XmlNodeType.EndElement)||
    (objTxtRd.NodeType==XmlNodeType.XmlDeclaration))
     {
        ...process code
     }
}


On Sep 5, 1:59 pm, Dave <[EMAIL PROTECTED]> wrote:
> All the examples i've found using XmlSerializer work with one time
> serialization / deserialization of objects... or one time
> serialization / deserialization of collection of objects.
>
> I need to be able to keep a file stream open, and just serialize
> (IrcMessage) objects as they come into my server, then eventually have
> some other thread deserialize the accumulated (IrcMessage) objects.
> the problem is, every time i call:
>
>                 StreamWriter messageWriter = new
> StreamWriter(_logFileStream, Encoding.ASCII);
>                 XmlSerializer writer = new
> XmlSerializer(typeof(IrcMessage));
>                 writer.Serialize(messageWriter, ircMessage2);
>
> where:
>
>     [Serializable]
>     public class IrcMessage
>     {
>         int _channelId = -1;
>         public int ChannelId
>         {
>             get { return _channelId; }
>             set { _channelId = value; }
>         }
>
>         string _ircMessageText = null;
>         public string IrcMessageText
>         {
>             get { return _ircMessageText; }
>             set { _ircMessageText = value; }
>         }
>    }
>
> it causes the following output:
>
> <?xml version="1.0" encoding="us-ascii"?>
> <IrcMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>   <ChannelId>1</ChannelId>
>   <IrcMessageText>103 Host my hostabc</
> IrcMessageText>
> </IrcMessage><?xml version="1.0" encoding="us-ascii"?>
> <IrcMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>   <ChannelId>2</ChannelId>
>   <IrcMessageText>boohaha string</IrcMessageText>
> </IrcMessage><?xml version="1.0" encoding="us-ascii"?>
> <IrcMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>   <ChannelId>1</ChannelId>
>   <IrcMessageText>sasdjlfsdjfsdjsfdjkfsdjksdfjksdafjk;sd;jasdf</
> IrcMessageText>
> </IrcMessage>
>
> one problem is i don't want the xml version info to keep being
> rewritten...
>
> when trying to deserialize:
>
>             StreamReader ircMessageReader = new
> StreamReader(logFileStream);
>             XmlSerializer ircMessageParser = new
> XmlSerializer(typeof(IrcMessage));
>             return
> (IrcMessage)ircMessageParser.Deserialize(ircMessageReader);
>
> i blow up with Unexpected XML declaration... trying to manually remove
> the declaration from the files causes other errors.  but this is only
> 1 issue i'm seeing.
>
> i could accumulate the objects in a collection then do a onetime
> serialization of a collection of IrcMessage objects, then deserialize
> the collection in the same manner - but this IS NOT what i'm after.
> I.e. i wish to serialize IrcMessage objects to file as they come
> in...  (as stated in 2nd paragraph)
>
> any help would be most appreciated!
>
> thanks, dave

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"DotNetDevelopment, VB.NET, C# .NET, ADO.NET, ASP.NET, XML, XML Web 
Services,.NET Remoting" 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://cm.megasolutions.net/forums/default.aspx
-~----------~----~----~----~------~----~------~--~---

Reply via email to