K, I took the tiny bit of code you posted, and added something that uses it
with XmlSerializer, which basically meant implementing the interface (with
NIEs) and adding:
using System;
using System.Xml.Serialization;
using pb = global::Google.Protobuf;
using pbr = global::Google.Protobuf.Reflection;
static class Program
{
static void Main()
{
var ser = new XmlSerializer(typeof(ClientIdentifier));
var obj = new ClientIdentifier();
ser.Serialize(Console.Out, obj);
}
}
---
And here's the thing: it works fine! So: if anyone is going to be able to
help you here, you're going to need to meet us half way, by *showing us the
code that doesn't work*.
On Wed, 21 Aug 2019 at 07:05, Arun <[email protected]> wrote:
>
> 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
>
>
--
Regards,
Marc
--
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/CAF95VAwkzCH0uD8JT6McpSND1SEZtw98VObP9iNCta8-jo_P9g%40mail.gmail.com.