Access private member
Basile B. via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Jun 13 01:23:48 PDT 2016
On Monday, 13 June 2016 at 07:53:08 UTC, Jacob Carlborg wrote:
> On 2016-06-13 09:49, Jacob Carlborg wrote:
>
>> For fields, used .tupleof, for other symbols, use a pointer.
>
> Here's an example [1] of accessing a field using the name of
> the field as a string. It will bypass private.
>
> That module [1] contains some generic functionality for working
> with fields which you would need for serialization. Or you can
> use the whole serialization library directly [2] ;)
>
> [1]
> https://github.com/jacob-carlborg/orange/blob/master/orange/util/Reflection.d#L123
>
> [2] https://github.com/jacob-carlborg/orange
There's also the IZ serializer. It's based on accessors (called
property descriptor) to read and write private or protected
fields. Actually it's never a good idea to directly access them.
Usually they're not hidden for anything (e.g the count of items
in a list, the setter update the list...)
pd:
https://github.com/BBasile/iz/blob/master/import/iz/properties.d
ser:
https://github.com/BBasile/iz/blob/master/import/iz/serializer.d
More information about the Digitalmars-d-learn
mailing list