C# 如何指定Roslyn方法参数

C# 如何指定Roslyn方法参数,c#,parameters,constructor,roslyn,C#,Parameters,Constructor,Roslyn,我有以下代码,但我认为参数不太正确。如何实际使用Roslyn代码生成位来指定参数?请注意,它还必须是数组。谢谢 using static SyntaxFactory; using static SyntaxKind; using static LanguageVersion; // ... MemberDeclarationSyntax GeneratePrivateBytesCtor() => ConstructorDeclaration(Descriptor.TypeIdent

我有以下代码,但我认为参数不太正确。如何实际使用Roslyn代码生成位来指定参数?请注意,它还必须是
数组
。谢谢

using static SyntaxFactory;
using static SyntaxKind;
using static LanguageVersion;
// ...
MemberDeclarationSyntax GeneratePrivateBytesCtor()
    => ConstructorDeclaration(Descriptor.TypeIdentifier)
        .WithModifiers(SyntaxTokenList.Create(Token(PrivateKeyword)))
        .AddParameterListParameters(ParseParameterList("byte[] bytes").Parameters.Single())
        .WithInitializer(ConstructorInitializer(BaseConstructorInitializer)
            .AddArgumentListArguments(
                Argument(IdentifierName("bytes"))
            )
        );

经过一些挖掘和修补,我想知道这是否是一个更好的方法

const string bytes = nameof(bytes);
const SyntaxKind arrayType = SyntaxKind.ArrayType;

var bytesSyntax = Parameter(Identifier(bytes))
    .WithModifiers(Create(Token(arrayType)))
    .WithType(ParseTypeName(typeof(byte).FullName))
    ;
同样,假设使用某些静态语句

或者,甚至可能是这样的:

var bytesSyntax = Parameter(Identifier(bytes))
    .WithType(ParseTypeName(typeof(byte[]).FullName))
    ;
大致基于对*Reflection**的遥远经验的假设,其中我似乎记得“数组”被标识为类型“修饰符”,大致如下。我可能是弄错了;已经有一段时间了,但是我发现我想在这里声明参数为
byte[]

想法