是否可以編寫一個在AOT中動態創建新類對象和/或方法的x ++(或C#CLR)方法?Dynamics AX 2012:動態創建類
makeCustomClass(string className)
{
//create new class with name className;
//populate methods into that class;
}
我甚至不知道該從哪裏開始,所以一些示例代碼將是一個很大的幫助。
是否可以編寫一個在AOT中動態創建新類對象和/或方法的x ++(或C#CLR)方法?Dynamics AX 2012:動態創建類
makeCustomClass(string className)
{
//create new class with name className;
//populate methods into that class;
}
我甚至不知道該從哪裏開始,所以一些示例代碼將是一個很大的幫助。
下面是解:
static void MakeClass(Args _args)
{
ClassBuild classBuild;
DictClass dictClass;
;
classBuild = new ClassBuild("TRN_ClassBuild", false);
classBuild.addMethod("test",
@"void test()
{
;
print 'Hello';
pause;
}");
classBuild.addMethod("test2", 'void test2()\n{\n}');
classBuild.addSourceToMethod("test2", @"
str testVar;
;
testVar = 'TRN_ClassBuild';
info('We created a Class ' + testVar + ' and can use its methods.');
TreeNode::findNode('Classes\\'+TestVar).AotNewWindow();");
classBuild.classNode().AOTcompile();
box::info(strFmt("Creating class %1 with 2 methods. Code of method test2:\n\n%2", classBuild.name(),
classBuild.getMethodImplementation("test2", false).AOTgetSource()));
dictClass = new DictClass(className2Id(classBuild.name()));
dictClass.callObject('test2', dictClass.makeObject());
}
從下面的文章剽竊,然後在隆起AX 2012 R2工作。 http://kashperuk.blogspot.com/2006/11/today-i-want-to-write-about-using-class.html
您對產品生成器類很好的例子(PBA的前綴),PB在編譯過程中產生了一些類的車型。
謝謝。我會看一看。 – Brad 2013-04-10 18:56:04
另請參閱XppSource類。你可以使用一些「片段」。 – 2013-04-14 22:52:06
找到一篇文章,可能正是我需要的。 http://kashperuk.blogspot.com/2006/11/today-i-want-to-write-about-using-class.html將作爲答案發布,如果它的作品。 – Brad 2013-04-09 18:12:28