我目前正在尝试用 D 编写一个程序,当调用并传递一个对象时,它将将该对象序列化为一个 XML 文档。我想让它像将对象传递给它一样简单,但我不完全确定它可以完成。 示例:
class A
{
//Constructors and fluff
....
int firstInt;
int secondInt;
}
.....
A myObj = new A();
XMLSerialize(myObj);
输出为
<A.A>
<firstInt></firstInt>
<secondInt></secondInt>
</A.A>
那么,我是否有可能获得对象内部变量的名称,还是必须全部手动完成?
最佳答案
代码胜一千字(有意简化):
import std.stdio;
void print(T)(T input)
if (is(T == class) || is(T == struct))
{
foreach (index, member; input.tupleof)
{
writefln("%s = %s", __traits(identifier, T.tupleof[index]), member);
}
}
struct A
{
int x, y;
}
void main()
{
print(A(10, 20));
}
关于xml - 可以在 D 中获取变量名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20274172/