C# CodeDom嵌套数组

C# CodeDom嵌套数组,c#,arrays,codedom,C#,Arrays,Codedom,正如标题所示,我正在尝试“嵌套”——或者使用CodeDom在C#中的数组中创建一个数组 下面是我试图复制的一行: T.Invoke(null, new object[] { new string[] {} } ); 其中T.Invoke是一个方法。 我能够创造出几乎没有瑕疵的上述线条。我唯一的问题是创建第二组“{}”括号。下面是我使用的代码: CodeMethodInvokeExpression invoke_expression = new CodeMethodInvokeExpressio

正如标题所示,我正在尝试“嵌套”——或者使用CodeDom在C#中的数组中创建一个数组

下面是我试图复制的一行:

T.Invoke(null, new object[] { new string[] {} } );
其中T.Invoke是一个方法。

我能够创造出几乎没有瑕疵的上述线条。我唯一的问题是创建第二组“{}”括号。下面是我使用的代码:

CodeMethodInvokeExpression invoke_expression = new CodeMethodInvokeExpression(
new CodeTypeReferenceExpression("T"),"Invoke",
new CodePrimitiveExpression(null),
new CodeArrayCreateExpression(typeof(object),
new CodeExpression[] {
new CodeArrayCreateExpression(typeof(string[]),
new CodeExpression[] {})} )));
也许有人能理解我的代码,甚至可能发现我的错误

谢谢你的帮助


Evan

使用空的
代码片段表达式
强制它创建括号:

CodeMethodInvokeExpression invoke_expression = new CodeMethodInvokeExpression(
    new CodeTypeReferenceExpression("T"),
    "Invoke",
    new CodePrimitiveExpression(null),
    new CodeArrayCreateExpression(
        typeof(object),
        new CodeExpression[]
        {
            new CodeArrayCreateExpression(
                typeof(string[]),
                new CodeExpression[]
                {
                    new CodeSnippetExpression("")
                })/*CodeArrayCreateExpression */
        })/*CodeArrayCreateExpression */
    )/*CodeMethodInvokeExpression*/;

错误是什么?您收到的输出是什么?我不知道C#,但是{}会是字符串的文本吗?(一个值?)我在问题中写了它-最后一组“{}”括号没有出现。因此它看起来像:T.Invoke(null,new object[]{new string[]})您在创建
新字符串[0]
时会遇到更少的问题吗?(我没有经常使用CodeDom,所以我的ming就是这么做的)。不幸的是,没有。我也试过——谢谢:)它工作得非常好。您是如何知道“CodeSnippetExpression”会创建括号的?我以前遇到过这个问题,并了解到blank
CodeSnippetExpression
s对于让CodeDom输出它认为“不必要”的代码非常有用。