Get specific functions of unknown type at runtime?
F i L
witte2008 at gmail.com
Sun Dec 16 17:39:53 PST 2012
My goal is this, to have an XML file:
<!-- scene.xml -->
<scene>
<object class="Person" event="greet"/>
</scene>
and a D file:
module person;
import std.stdio;
class Person
{
void greet() {
writeln("hello");
}
}
and then another D file:
module main;
import person;
import std.xml;
import std.file;
static class Engine
{
static void delegate() event;
static void callEvent() { event(); }
}
void main() {
auto doc = new Document(read("scene.xml"));
auto className = /* find class name in xml file */;
auto eventName = /* find event name in xml file */;
auto obj = Object.factory(className);
Engine.event = /* get 'eventName' void in 'obj' */;
for (/* some loop */) { Engine.callEvent(); }
}
So yeah, basically is is possible to create a general object,
then look at it's members at runtime? Through maybe a .classinfo
or something? Or is this level of runtime reflection simply not
supported in D (yet)? If so, what are my best alternative options
here?
More information about the Digitalmars-d-learn
mailing list