I am not able to initialize XmlSerializer class itself. It is failing saying "static Types cannot be serialized "
On Wed, 21 Aug 2019 at 00:20, Marc Gravell <[email protected]> wrote: > Can you show any of your XmlSerializer code here, so can understand it? I > wouldn't expect the presence of a static type to break XmlSerializer, I > admit! But also: protobuf code doesn't usually guarantee anything other > than that it should work with the corresponding protobuf library. > > On Tue, 20 Aug 2019, 06:32 arun kumar, <[email protected]> wrote: > >> @Marc Gravell, >> >> I auto-generated ".cs" files from each ".proto" file. . Whereever a >> message declared inside another message in proto, auto-generated cs file is >> generated as " Nested Types " and Types class is generated as static. (I >> guess , its how the generator defined) >> >> And, I am trying to convert my xml data into CS object using >> XMLSerializer , it complains >> >> There was an error reflecting type 'SCL.PC.ClientIdentifier'. ---> >>> System.InvalidOperationException: SCL.PC.ClientIdentifier+Types cannot be >>> serialized. Static types cannot be used as parameters or return types. >> >> >> All I am trying to do is , >> >> Converting XML data --> CS Object (IMessage) --> proto buf Serialize into >>> stream >> >> >> >> Is there any way, to convert the xml data to IMessageObject.. I can see >> MessageParser has ParseJson object. Likewise, anything available for xml ? >> >> >> var serializer = new XmlSerializer(typeof(SCL.PC.ClientIdentifier)); >> >> Auto-Generated CS File : >> >> public sealed partial class ClientIdentifier : >> pb::IMessage<ClientIdentifier> { >> private static readonly pb::MessageParser<ClientIdentifier> _parser = >> new pb::MessageParser<ClientIdentifier>(() => new ClientIdentifier()); >> private pb::UnknownFieldSet _unknownFields; >> [global::System.Diagnostics.DebuggerNonUserCodeAttribute] >> public static pb::MessageParser<ClientIdentifier> Parser { get { >> return _parser; } } >> >> --- >> >> #region Nested types >> /// <summary>Container for nested types declared in the >> ClientIdentifier message type.</summary> >> [global::System.Diagnostics.DebuggerNonUserCodeAttribute] >> public static partial class Types { >> public enum Context { >> /// <summary> >> /// The client's identifier consists of a functional identifier >> (FID) in big-endian format. Valid values range from 0x00000000 to >> 0xFFFFFFFF. >> /// </summary> >> [pbr::OriginalName("CFID")] Cfid = 0, >> /// <summary> >> /// The client's identifier consists of an ASCII-encoded serial >> number. >> /// </summary> >> [pbr::OriginalName("CSN")] Csn = 1, >> } >> >> } >> #endregion >> >> } >> >> #endregion >> >> >> On Monday, 19 August 2019 19:56:45 UTC+5:30, Marc Gravell wrote: >>> >>> And can we see some code that actually demonstrates this problem? That >>> would really help here. >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Protocol Buffers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/protobuf/a6a61e73-3253-4191-b2a0-27cb63d26bde%40googlegroups.com >> <https://groups.google.com/d/msgid/protobuf/a6a61e73-3253-4191-b2a0-27cb63d26bde%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- -- Arun -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/protobuf/CAG5mLysdZmEYe-8x4FunKza8A3ZFzwVZVOqwE%3Dh6mu2ko8R3Ww%40mail.gmail.com.
