当前位置: 代码迷 >> .NET Framework >> 相熟.net CodeDom的请进
  详细解决方案

相熟.net CodeDom的请进

热度:150   发布时间:2016-05-01 23:47:54.0
熟悉.net CodeDom的请进
如何通过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;
  相关解决方案