Exemple #1
0
        protected override SyntaxNode GetUpdatedTypeSyntax(Document document, BaseTypeDeclarationSyntax syntax)
        {
            var disposeMethod = GetDisposeMethod(syntax);

            // remove method so that it can be added again
            var modifiedType = syntax.RemoveNode(disposeMethod, SyntaxRemoveOptions.KeepNoTrivia);

            var syntaxNode = FindLastCtorOrFinalizer(modifiedType);

            if (syntaxNode is null)
            {
                // none found, so insert method before first method
                var method = modifiedType.ChildNodes().OfType <MethodDeclarationSyntax>().First();

                return(modifiedType.InsertNodeBefore(method, disposeMethod));
            }

            // insert method after found ctor or finalizer
            return(modifiedType.InsertNodeAfter(syntaxNode, disposeMethod));
        }