Программно форматировать сгенерированный код CodeDom - PullRequest
6 голосов
/ 28 августа 2009

Как я могу убедиться, что 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("};"));

Ответы [ 2 ]

2 голосов
/ 28 августа 2009

CodeDom действительно для генерации кода во время выполнения. Если вы хотите сгенерировать код во время разработки или компиляции, вам следует использовать шаблоны T4.

T4 позволяет форматировать вывод кода именно так, как вы хотите, чтобы он выглядел:

http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx

0 голосов
/ 28 августа 2009

В Visual Studio перейдите на

Инструмент -> Опции-Текстовый редактор-> C # -> Форматирование

Ctrl - K - D будет использовать настройки для форматирования кода.

...