如何通过CodeDom生成如下代码:
Button btn = new Button() { Text = "OK",Name = "btnOK"};
谢谢。
------解决方案--------------------
很遗憾,直到.NET Framework 4.0,CodeDom都不支持这种称作Object Initializer的语法。
------解决方案--------------------
一个解决办法是用CodeSnippetExpression。CodeSnippetExpression可以包含任意形式的自定义代码。
var btnDecl = new CodeVariableDeclarationStatement();
var buttonTypeRef = new CodeTypeReference("Button");
var createExp = new CodeSnippetExpression("new Button() { Text = \"OK\",Name = \"btnOK\" }");
btnDecl.Name = "btn";
btnDecl.Type = buttonTypeRef;
btnDecl.InitExpression = createExp;