Генерация C # автоматических свойств с Codedom - PullRequest
7 голосов
/ 23 января 2010

есть ли способ генерировать автоматические свойства C # с помощью Codedom или , может быть, другой набор библиотек, которые я могу использовать?

Ответы [ 5 ]

5 голосов
/ 23 января 2010

Нет, это не так: Автоматическое свойство C # CodeDom

Загляните в эту статью , чтобы получить несколько полезных примеров

3 голосов
/ 27 мая 2014

Для этой цели вы можете использовать класс CodeSnippetTypeMember.

Например:

    CodeTypeDeclaration newType = new CodeTypeDeclaration("TestType");
    CodeSnippetTypeMember snippet = new CodeSnippetTypeMember();
    snippet.Comments.Add(new CodeCommentStatement("this is integer property", true));
    snippet.Text="public int IntergerProperty { get; set; }";
    newType.Members.Add(snippet);
2 голосов
/ 23 января 2010

CodeDom должен быть своего рода AST , который можно конвертировать в несколько языков (обычно C # и VB.NET). Следовательно, вы не найдете функций, которые являются синтаксическим сахаром определенного языка в CodeDom.

1 голос
/ 06 октября 2011

На самом деле комментарии о простоте использования CodeSnippetStatement вводят в заблуждение, потому что CodeTypeDeclaration не имеет коллекции операторов, в которую можно добавить эти фрагменты.

0 голосов
/ 07 марта 2015

Вы можете сделать это: в соответствии с Как: создать класс с использованием CodeDOM

        // Declare the ID Property.
        CodeMemberProperty IDProperty = new CodeMemberProperty();
        IDProperty.Attributes = MemberAttributes.Public;
        IDProperty.Name = "Id";
        IDProperty.HasGet = true;
        IDProperty.HasSet = true;
        IDProperty.Type = new CodeTypeReference(typeof(System.Int16));
        IDProperty.Comments.Add(new CodeCommentStatement(
        "Id is identity"));
        targetClass.Members.Add(IDProperty);
...