public static void Register(CodeRefactoringContext context, InitializerExpressionSyntax initializer)
        {
            if (initializer == null)
            {
                throw new ArgumentNullException(nameof(initializer));
            }

            if (initializer.IsAnyKind(SyntaxKind.ObjectInitializerExpression, SyntaxKind.CollectionInitializerExpression) &&
                initializer.Expressions.Count > 0 &&
                initializer.Parent?.IsKind(SyntaxKind.ObjectCreationExpression) == true)
            {
                switch (initializer.Parent.Parent?.Kind())
                {
                case SyntaxKind.SimpleAssignmentExpression:
                {
                    var assignmentExpression = (AssignmentExpressionSyntax)initializer.Parent.Parent;

                    if (assignmentExpression.Left != null &&
                        assignmentExpression.Parent?.IsKind(SyntaxKind.ExpressionStatement) == true &&
                        assignmentExpression.Parent.Parent?.IsKind(SyntaxKind.Block) == true)
                    {
                        context.RegisterRefactoring(
                            Title,
                            cancellationToken => ExpandObjectInitializerAsync(
                                context.Document,
                                initializer,
                                (ExpressionStatementSyntax)assignmentExpression.Parent,
                                assignmentExpression.Left.WithoutTrivia(),
                                cancellationToken));
                    }

                    break;
                }

                case SyntaxKind.EqualsValueClause:
                {
                    var equalsValueClause = (EqualsValueClauseSyntax)initializer.Parent.Parent;

                    if (equalsValueClause.Parent?.IsKind(SyntaxKind.VariableDeclarator) == true &&
                        equalsValueClause.Parent.Parent?.IsKind(SyntaxKind.VariableDeclaration) == true &&
                        equalsValueClause.Parent.Parent.Parent?.IsKind(SyntaxKind.LocalDeclarationStatement) == true &&
                        equalsValueClause.Parent.Parent.Parent.Parent?.IsKind(SyntaxKind.Block) == true)
                    {
                        context.RegisterRefactoring(
                            Title,
                            cancellationToken => ExpandObjectInitializerAsync(
                                context.Document,
                                initializer,
                                (LocalDeclarationStatementSyntax)equalsValueClause.Parent.Parent.Parent,
                                IdentifierName(((VariableDeclaratorSyntax)equalsValueClause.Parent).Identifier.ToString()),
                                cancellationToken));
                    }

                    break;
                }
                }
            }
        }