Annotations or custom attributes

Gor Gyolchanyan gor.f.gyolchanyan at gmail.com
Fri Mar 9 08:26:49 PST 2012


That's easy to implement and extremely ugly.

On Fri, Mar 9, 2012 at 8:15 PM, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:
> On 3/9/12 2:56 AM, Manu wrote:
>>
>> Does D have a nice way to add annotations or custom attributes to
>> entities?
>>
>> In Java/C# for example, it is common to annotate things with useful
>> compile time information. I'd like to be able to do that in D on occasion.
>>
>> For instance, I'm serialising some struct/class using reflection to some
>> text format, but there are a couple of members in a particular class
>> that I don't want to be written.
>> A nice solution might be that I could annotate various members:
>> @DoNotSerialise int thing; ... or something along those lines, whatever
>> concept you want to apply, which I could then inspect in static if()
>> logic to produce some requested additional behaviour.
>>
>> This is a trivial example, but looking at C#/Java, you can see how many
>> useful things can be done with this sort of system.
>> How would it be done currently?
>
>
> I think a good approach in D would be to define mixins that work in
> conjunction with the feature involved, for example:
>
> class A {
>    int thing;
>    mixin(DoNotSerialize!"thing");
>    ...
> }
>
> or together:
>
> class A {
>    mixin(DoNotSerialize!(int, "thing"));
>    ...
> }
>
>
> Andrei



-- 
Bye,
Gor Gyolchanyan.


More information about the Digitalmars-d mailing list