Get class instance by class name string
- by VDVLeon
Hi all,
I noticed the function Object.factory(char[] className) in D.
But it does not work like I hoped it would work; it does not work ;)
An example:
import std.stdio;
class TestClass
{
override string toString()
{
return typeof(this).stringof; // TestClass
}
};
void main(string[] args)
{
auto i = Object.factory("TestClass");
if (i is null)
{
writeln("Class not found");
}
else
{
writeln("Class string: " ~ i);
}
}
I think this should result in the message: "Class string: TestClass" but it says "Class not found".
Does anybody know why this happens and how I could fix it ?
Or do I need to make my own class factory. For example by make a class with a static array Object[string] classes; with class instances. When I want a new instance I do this:
auto i = (className in classes);
if (i is null)
{
return null;
}
return i.classinfo.create();