private MemberDeclarationSyntax CreateProperty(VariableDeclarationSyntax node) { var type = semanticModel.GetTypeInfo(node.DescendantNodes().OfType <IdentifierNameSyntax>().FirstOrDefault()); var propertyName = node.DescendantNodes().OfType <IdentifierNameSyntax>().LastOrDefault().Identifier.ValueText; return(CodeElementFactory.CreateProperty(CodeElementFactory.CreateType(type), propertyName)); }
public override MemberDeclarationSyntax VisitAssignmentExpression(AssignmentExpressionSyntax node) { if (node.Left == null || node.Right == null || node.OperatorToken == null || node.OperatorToken.Kind() != SyntaxKind.EqualsToken) { return(null); } if (node.Left.Kind() != SyntaxKind.SimpleMemberAccessExpression) { return(null); } var simpleMemberAccessExpression = node.Left as MemberAccessExpressionSyntax; var left = simpleMemberAccessExpression.Expression as IdentifierNameSyntax; if (left == null || left.Identifier == null || left.Identifier.Text != localVaribleName) { return(null); } var typeInfo = semanticModel.GetTypeInfo(node.Right); return(CodeElementFactory.CreateProperty(CodeElementFactory.CreateType(typeInfo), simpleMemberAccessExpression.Name.Identifier.Text)); }