Open GoogleCodeExporter opened 9 years ago
I think you need to provide a default value for optional enums:
optional Foo bar = 1 [default = FOO_A];
Original comment by b...@bachcg.com
on 8 Mar 2011 at 9:53
Actually, according to:
http://code.google.com/apis/protocolbuffers/docs/proto.html#optional
says "A well-formed message may or may not contain an optional element." and
"For enums, the default value is the first value listed in the enum's type
definition." So I'd say this is a bug and can verify the same issue occurs for
me.
Original comment by b...@bachcg.com
on 8 Mar 2011 at 10:02
OK; looks like I need to revisit a number of glitches here...
Original comment by marc.gravell
on 8 Mar 2011 at 10:25
Thanks Marc. The workaround for now is just to add a default value as in
comment 1.
Original comment by b...@bachcg.com
on 8 Mar 2011 at 10:30
The simple file above works fine. What still doesn't work is when you have your
enums defined in a different .proto file than the class that uses them. The
XSLT only works if you use -d parameter and end up with one .cs file instead of
one .cs for each .proto.
I.e. consider the below example.
Base.proto:
package baz;
enum Foo {
FOO_A = 1;
FOO_B = 2;
}
MyMsg.proto:
package baz;
import "Base.proto";
message Test {
optional Foo bar = 1;
}
Resulting code is missing the required member
private baz.Foo _bar = baz.Foo.;
[global::ProtoBuf.ProtoMember(1, IsRequired = false, Name=@"bar", DataFormat = global::ProtoBuf.DataFormat.TwosComplement)]
[global::System.ComponentModel.DefaultValue(baz.Foo.)]
[global::System.Xml.Serialization.XmlElement(@"bar", Order = 1)]
public baz.Foo bar
{
get { return _bar; }
set { _bar = value; }
}
Original comment by yanov...@gmail.com
on 9 May 2013 at 9:20
also it's a duplicate of bug #92, bug #99, bug #129
Original comment by yanov...@gmail.com
on 29 May 2013 at 7:18
Here's a patch which addresses this. If you're not putting everything in one
file, Marc's code will find nothing, so instead it will put in
default(Your.EnumType) as the default value.
Original comment by yanov...@gmail.com
on 29 May 2013 at 8:16
Attachments:
Original issue reported on code.google.com by
m...@bakedbeans.com
on 1 Mar 2011 at 5:56Attachments: