Yes it does. Thanks. Where can I read more about this disabling of list-handling and its effects?
On Thu, Jun 28, 2012 at 8:31 AM, Marc Gravell <marc.grav...@gmail.com>wrote: > Well, until I get around to re-implementing it for v2, GetProto<T> will > just make a quiet apology. But to answer your question, consider an example > such as ItemList<Customer> > > Item<TItem> could be (I can't remember how v1 implements this) something > like > > message Item_Customer { > optional Customer Item = 1; > } > > On the subject of ItemList<TItem> - unless you disable list-handling > (separate topic), this will be treated *entirely* as just a List<TItem> - > so no specific message is generated. As per my previous comment, such a > list is then semantically identical to > > message SomeWrapper { > repeated Item_Customer Items = 1; > } > > Make sense? > > Marc > > On 28 June 2012 13:24, Joel Carrier <j...@joelcarrier.com> wrote: > >> Thanks a lot for the explanation Marc. >> >> I'm currently investigating some interop issues we're having and I'm >> starting to realize that this might be the source of the problem. >> >> [CollectionDataContract(Name = "ItemList")] >> public class ItemList<TItem> : List<Item<TItem>> where TItem : class >> ... >> where >> >> [DataContract(Name = "Item")] >> public class Item<TItem> where TItem : class >> { >> [DataMember(Order = 1, Name = "Item")] >> public TItem Item { get; set; } >> ... >> >> The TItems are classes generated from .proto files. So we're mixing the >> functionality (annotated classes vs. proto files). >> >> I think we're breaking a lot of "rules" here and I'm wondering how this >> could ever generate valid .proto files. >> That is, if it were to work, I have trouble picturing what Serializer. >> GetProto<ItemList>() might output. >> >> This does appear to be working between clients using protobuf-net but I >> guess what I'm looking for is confirmation that this would probably not >> work nicely interop-ing with other Protocol Buffer libraries. >> >> (Note: I'm new to this stuff, so if I'm not making any sense at all let >> me know and I'll return with a smarter question.) >> >> >> Joel >> >> >> On Wednesday, June 27, 2012 4:07:49 PM UTC-4, Marc Gravell wrote: >>> >>> The data is of course compatible. A `List<Foo>` is directly mappable to >>> .proto via for example: >>> >>> message SomeOuterMessage { >>> repeated Foo items = 1; >>> } >>> >>> In fact, for that reason, serializing a List<Foo> will produce >>> **exactly** the same data on the wire as serializing: >>> >>> [ProtoContract] >>> public class Whatever { >>> [ProtoMember(1)] >>> public List<Foo> Items {get;set;} >>> } >>> >>> which is (give or take) what you will get if you feed the above .proto >>> into "protogen" (protobuf-net's entirely optional code generator for >>> handling .proto definitions) >>> >>> Marc >>> >>> >>> >>> On 27 June 2012 16:21, Joel Carrier <j...@joelcarrier.com> wrote: >>> >>>> Hi Marc, >>>> >>>> Could you elaborate on your note: (note: this is specific to >>>> protobuf-net, not "protocol buffers" more widely) >>>> >>>> What are the implications if communicating with non-protobuf-net >>>> targets? (ie. java, python, ... applications) >>>> >>>> Joel >>>> >>>> >>>> On Wednesday, June 20, 2012 9:05:49 AM UTC-4, Marc Gravell wrote: >>>>> >>>>> (note: this is specific to protobuf-net, not "protocol buffers" more >>>>> widely), but yes: that (a generic list) would work fine, as long as the >>>>> property has been marked for serialization and given a number. There also >>>>> doesn't need to be a "set" accessor, although it can make full use of a >>>>> "set" - i.e. if it finds the list is "null", it will create a new list of >>>>> the appropriate type and use the "set" to update the object. >>>>> >>>>> So, your code would be fine if it has been designated a number, or a >>>>> related example: >>>>> >>>>> [ProtoMember(4)] >>>>> public List<Order> Orders { get { return orders; } } >>>>> private readonly List<Order> orders = new List<Order>(); >>>>> >>>>> Marc >>>>> (protobuf-net) >>>>> >>>>> On 20 June 2012 13:08, Farooq Mushtaq <farooqmushta...@gmail.com>wrote: >>>>> >>>>>> How can we serialize list of objects by using protobuf-net? Is >>>>>> protobuf-net support list of objects like >>>>>> public List(ABC) DEF >>>>>> { >>>>>> get; >>>>>> set; >>>>>> } >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Protocol Buffers" group. >>>>>> To view this discussion on the web visit https://groups.google.com/d/ >>>>>> **ms**g/protobuf/-/W0yySDcbES8J<https://groups.google.com/d/msg/protobuf/-/W0yySDcbES8J> >>>>>> . >>>>>> To post to this group, send email to protobuf@googlegroups.com. >>>>>> To unsubscribe from this group, send email to protobuf+unsubscribe@** >>>>>> googlegro**ups.com <protobuf%2bunsubscr...@googlegroups.com>. >>>>>> For more options, visit this group at http://groups.google.com/** >>>>>> group**/protobuf?hl=en<http://groups.google.com/group/protobuf?hl=en> >>>>>> . >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Regards, >>>>> >>>>> Marc >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Protocol Buffers" group. >>>> To view this discussion on the web visit https://groups.google.com/d/** >>>> msg/protobuf/-/2pcXp7q9LCcJ<https://groups.google.com/d/msg/protobuf/-/2pcXp7q9LCcJ> >>>> . >>>> >>>> To post to this group, send email to protobuf@googlegroups.com. >>>> To unsubscribe from this group, send email to protobuf+unsubscribe@** >>>> googlegroups.com <protobuf%2bunsubscr...@googlegroups.com>. >>>> For more options, visit this group at http://groups.google.com/** >>>> group/protobuf?hl=en <http://groups.google.com/group/protobuf?hl=en>. >>>> >>> >>> >>> >>> -- >>> Regards, >>> >>> Marc >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Protocol Buffers" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/protobuf/-/SUzHf4_n0O4J. >> >> To post to this group, send email to protobuf@googlegroups.com. >> To unsubscribe from this group, send email to >> protobuf+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/protobuf?hl=en. >> > > > > -- > Regards, > > Marc > -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to protobuf@googlegroups.com. To unsubscribe from this group, send email to protobuf+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.