コード例 #1
0
 private PropertyDeclarationSyntax CreateReadOnlyProperty(PropertyTemplateData propertyTemplate)
 {
     return(SyntaxFactory.PropertyDeclaration(SyntaxFactory.ParseTypeName(propertyTemplate.Type), propertyTemplate.Name)
            .AddModifiers(SyntaxFactory.Token(SyntaxKind.PublicKeyword))
            .AddAccessorListAccessors(
                SyntaxFactory.AccessorDeclaration(SyntaxKind.GetAccessorDeclaration).WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken))));
 }
コード例 #2
0
 private PropertyDeclarationSyntax CreateReadOnlyPropertyWithDefultValue(PropertyTemplateData propertyTemplate)
 {
     return(SyntaxFactory.PropertyDeclaration(SyntaxFactory.ParseTypeName(propertyTemplate.Type), propertyTemplate.Name)
            .AddModifiers(SyntaxFactory.Token(SyntaxKind.PublicKeyword))
            .WithExpressionBody(
                SyntaxFactory.ArrowExpressionClause(
                    SyntaxFactory.LiteralExpression(SyntaxKind.NumericLiteralExpression, SyntaxFactory.Literal(propertyTemplate.DefaultValue))))
            .WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken)));
 }
コード例 #3
0
 private PropertyDeclarationSyntax CreatePropertyWithSetter(PropertyTemplateData propertyTemplate)
 {
     return(SyntaxFactory.PropertyDeclaration(SyntaxFactory.ParseTypeName(propertyTemplate.Type), propertyTemplate.Name)
            .AddModifiers(SyntaxFactory.Token(SyntaxKind.PublicKeyword))
            .AddAccessorListAccessors(
                SyntaxFactory.AccessorDeclaration(SyntaxKind.GetAccessorDeclaration)
                .WithBody(SyntaxFactory.Block(SyntaxFactory.ParseStatement($"return {propertyTemplate.NameStartWithLowerCase};"))),
                SyntaxFactory.AccessorDeclaration(SyntaxKind.SetAccessorDeclaration)
                .WithBody(SyntaxFactory.Block(SyntaxFactory.ParseStatement($"{propertyTemplate.NameStartWithLowerCase} = value;")))));
 }
コード例 #4
0
        private PropertyDeclarationSyntax CreateProperty(PropertyTemplateData propertyTemplate)
        {
            var propertyDeclaration = SyntaxFactory.PropertyDeclaration(SyntaxFactory.ParseTypeName(propertyTemplate.Type), propertyTemplate.Name)
                                      .AddAccessorListAccessors(
                SyntaxFactory.AccessorDeclaration(SyntaxKind.GetAccessorDeclaration).WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken)));

            if (!propertyTemplate.IsReadOnly)
            {
                propertyDeclaration = propertyDeclaration
                                      .AddAccessorListAccessors(SyntaxFactory.AccessorDeclaration(SyntaxKind.SetAccessorDeclaration)
                                                                .WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken)));
            }

            return(propertyDeclaration);
        }
コード例 #5
0
 private FieldDeclarationSyntax CreateFieldForProperty(PropertyTemplateData propertyTemplate)
 {
     return(SyntaxFactory.FieldDeclaration(SyntaxFactory
                                           .VariableDeclaration(SyntaxFactory.ParseTypeName(propertyTemplate.Type)).AddVariables(SyntaxFactory.VariableDeclarator(propertyTemplate.NameStartWithLowerCase)))
            .WithModifiers(SyntaxFactory.TokenList(SyntaxFactory.Token(SyntaxKind.PrivateKeyword))));
 }