public static Task <Document> RefactorAsync(Document document, CompilationUnitSyntax compilationUnitSyntax, CancellationToken cancellationToken = default)
        {
            var attributeList = GetGenerator(document)
                                .InternalVisibleToDynamicProxyAttributeList()
                                .Cast <AttributeListSyntax>();

            var assemblyAttributes = attributeList.Attributes.Select(attr =>
                                                                     attr.WithTarget(AttributeTarget(Token(SyntaxKind.AssemblyKeyword))));

            attributeList = attributeList.WithAttributes(SeparatedList(assemblyAttributes));

            var updatedCompilationUnitSyntax =
                compilationUnitSyntax.AddAttributes(AttributesStatement(SingletonList(attributeList)));

            return(document.ReplaceNodeAsync(compilationUnitSyntax, updatedCompilationUnitSyntax, cancellationToken));
        }
示例#2
0
        public static Task <Document> RefactorAsync(Document document, CompilationUnitSyntax compilationUnitSyntax, CancellationToken cancellationToken = default)
        {
            var addAttributeLists = compilationUnitSyntax.AddAttributes(
                AttributesStatement(SingletonList(
                                        AttributeList(SingletonSeparatedList(Attribute(
                                                                                 AttributeTarget(Token(SyntaxKind.AssemblyKeyword)),
                                                                                 QualifiedName(
                                                                                     QualifiedName(
                                                                                         QualifiedName(
                                                                                             IdentifierName("System"),
                                                                                             IdentifierName("Runtime")),
                                                                                         IdentifierName("CompilerServices")),
                                                                                     IdentifierName("InternalsVisibleTo")),
                                                                                 ArgumentList(SingletonSeparatedList <ArgumentSyntax>(SimpleArgument(
                                                                                                                                          LiteralExpression(
                                                                                                                                              SyntaxKind.StringLiteralExpression,
                                                                                                                                              Literal("DynamicProxyGenAssembly2")))))))))));

            return(document.ReplaceNodeAsync(compilationUnitSyntax, addAttributeLists, CancellationToken.None));
        }