internal static AttributeSyntax GetGeneratedCodeAttributeSyntax()
 {
     return
         (SF.Attribute(typeof(GeneratedCodeAttribute).GetNameSyntax())
          .AddArgumentListArguments(
              SF.AttributeArgument(CodeGeneratorName.GetLiteralExpression()),
              SF.AttributeArgument(CodeGeneratorVersion.GetLiteralExpression())));
 }
        public static CompilationUnitSyntax AddGeneratedCodeAttribute(GeneratedSyntax generatedSyntax)
        {
            var codeGenTargetAttributes =
                SF.AttributeList()
                .AddAttributes(
                    generatedSyntax.SourceAssemblies.Select(
                        asm =>
                        SF.Attribute(typeof(OrleansCodeGenerationTargetAttribute).GetNameSyntax())
                        .AddArgumentListArguments(
                            SF.AttributeArgument(asm.GetName().FullName.GetLiteralExpression()))).ToArray())
                .WithTarget(SF.AttributeTargetSpecifier(SF.Token(SyntaxKind.AssemblyKeyword)));
            var generatedCodeAttribute =
                SF.AttributeList()
                .AddAttributes(
                    SF.Attribute(typeof(GeneratedCodeAttribute).GetNameSyntax())
                    .AddArgumentListArguments(
                        SF.AttributeArgument("Orleans-CodeGenerator".GetLiteralExpression()),
                        SF.AttributeArgument(RuntimeVersion.FileVersion.GetLiteralExpression())))
                .WithTarget(SF.AttributeTargetSpecifier(SF.Token(SyntaxKind.AssemblyKeyword)));

            return(generatedSyntax.Syntax.AddAttributeLists(generatedCodeAttribute, codeGenTargetAttributes));
        }
 public static AttributeSyntax AttributeWithArgument(string attributeName, params string[] attributeArguments)
 {
     return(SF.Attribute(SF.IdentifierName(attributeName),
                         SF.AttributeArgumentList()
                         .WithArguments(SF.SeparatedList(attributeArguments.Select(arg => SF.AttributeArgument(SF.IdentifierName(arg)))))));
 }