示例#1
0
        /// <summary>
        /// Swap object creation to built in type.
        /// </summary>
        /// <param name="objectCreationExpressionNode">
        /// The object creation expression node.
        /// </param>
        private static void SwapObjectCreationToBuiltInType(IObjectCreationExpression objectCreationExpressionNode)
        {
            IPsiModule project = objectCreationExpressionNode.GetPsiModule();

            using (WriteLockCookie.Create(true))
            {
                IObjectCreationExpression tmpExpression =
                    (IObjectCreationExpression)
                    CSharpElementFactory.GetInstance(project).CreateExpression("new $0?()", new object[] { objectCreationExpressionNode.Type() });
                objectCreationExpressionNode.SetCreatedTypeUsage(tmpExpression.CreatedTypeUsage);
            }
        }
        protected override Action <ITextControl> ExecutePsiTransaction(ISolution solution, IProgressIndicator progress)
        {
            using (WriteLockCookie.Create())
            {
                var scriptableObjectType =
                    TypeFactory.CreateTypeByCLRName(KnownTypes.ScriptableObject, myWarningCreationExpression.GetPsiModule());

                var factory       = CSharpElementFactory.GetInstance(myWarningCreationExpression);
                var newExpression = factory.CreateExpression("$0.CreateInstance<$1>()",
                                                             scriptableObjectType, myWarningCreationExpression.ExplicitType());
                ModificationUtil.ReplaceChild(myWarningCreationExpression, newExpression);
            }

            return(null);
        }
        /// <summary>
        /// Swap object creation to built in type.
        /// </summary>
        /// <param name="objectCreationExpressionNode">
        /// The object creation expression node.
        /// </param>
        private static void SwapObjectCreationToBuiltInType(IObjectCreationExpression objectCreationExpressionNode)
        {
            IPsiModule project = objectCreationExpressionNode.GetPsiModule();

            using (WriteLockCookie.Create(true))
            {
                IObjectCreationExpression tmpExpression =
                    (IObjectCreationExpression)
                    CSharpElementFactory.GetInstance(project).CreateExpression("new $0?()", new object[] { objectCreationExpressionNode.Type() });
                objectCreationExpressionNode.SetCreatedTypeUsage(tmpExpression.CreatedTypeUsage);
            }
        }