www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - attributes

reply macky <martin.butina gmail.com> writes:
Hi all!

is there a way to get all attributes and their types in a class at runtime?
Comming from the c# world I'm missing something like meta tags [attributes] -
something like reflection. I wonder how this issue can be solved in d?
Mar 29 2007
parent reply Bradley Smith <digitalmars-com baysmith.com> writes:
macky wrote:
 Hi all!
 
 is there a way to get all attributes and their types in a class at runtime?
Comming from the c# world I'm missing something like meta tags [attributes] -
something like reflection. I wonder how this issue can be solved in d?

Perhaps something like this: import std.stdio; class A { int a; float b; C c; } class C { int i; } void main() { A a = new A; foreach (i, attrib; a.tupleof) { writefln("attribute ", i, " is of type ", typeid(typeof(attrib)), " and value ", attrib); } } Output: attribute 0 is of type int and value 0 attribute 1 is of type float and value nan attribute 2 is of type attribList.C and value null
Mar 29 2007
parent macky <martin.butina gmail.com> writes:
Thanx, this seems like a nice solution. I will look into it!

Bradley Smith Wrote:

 macky wrote:
 Hi all!
 
 is there a way to get all attributes and their types in a class at runtime?
Comming from the c# world I'm missing something like meta tags [attributes] -
something like reflection. I wonder how this issue can be solved in d?

Perhaps something like this: import std.stdio; class A { int a; float b; C c; } class C { int i; } void main() { A a = new A; foreach (i, attrib; a.tupleof) { writefln("attribute ", i, " is of type ", typeid(typeof(attrib)), " and value ", attrib); } } Output: attribute 0 is of type int and value 0 attribute 1 is of type float and value nan attribute 2 is of type attribList.C and value null

Mar 30 2007