Phi*_*ffy 6 c# code-generation codedom
如何确保从以下代码生成的CS格式良好,即好像我们按下CTRL+ K+ D?这是C#
我们正在做的事情:
CodeMemberMethod membMethod = new CodeMemberMethod();
membMethod.Attributes = MemberAttributes.Static | MemberAttributes.Public;
membMethod.ReturnType = new CodeTypeReference("IEnumerable<" + TableNameAsSinglular + ">");
membMethod.Name = "Get" + TableName;
membMethod.Statements.Add(new CodeSnippetStatement(DataBaseContext + " dcontext = new " + DataBaseContext + "(ConnectionString);"));
membMethod.Statements.Add(new CodeSnippetStatement("var records = from record in dcontext." + TableName + " select new " + TableNameAsSinglular + "{"));
int iCount = 0;
//Add columns fields
foreach (DataRow dr in sqlTable.Rows)
{
if (iCount == 4)
break;
string strColName = dr["ColumnName"].ToString().Replace(" ", "");
membMethod.Statements.Add(new CodeSnippetStatement(strColName + "=" + "record." + strColName + ","));
iCount++;
}
membMethod.Statements.Add(new CodeSnippetStatement("};"));
Run Code Online (Sandbox Code Playgroud)
CodeDom 确实用于运行时代码生成。如果您希望在设计时或编译时生成代码,则应该使用 T4 模板。
T4 允许您按照您希望的显示方式准确格式化代码输出:
| 归档时间: |
|
| 查看次数: |
3937 次 |
| 最近记录: |