タイトルが示唆するように、私は "入れ子にする"ことを目指しています。あるいは、CodeDomを使用してC#で配列内に配列を作成しようとしています。 T.InvokeがメソッドであるCodeDomネストされた配列
T.Invoke(null, new object[] { new string[] {} });
:ここ
は私が複製しようとしているラインです。
で上記の行を作成することができます。瑕疵はほとんどありません。私が持っている唯一の問題は、{}}の第2セットを作成することです。私が使用したコードは以下の通りです。
CodeMethodInvokeExpression invoke_expression = new CodeMethodInvokeExpression(
new CodeTypeReferenceExpression("T"),"Invoke",
new CodePrimitiveExpression(null),
new CodeArrayCreateExpression(typeof(object),
new CodeExpression[] {
new CodeArrayCreateExpression(typeof(string[]),
new CodeExpression[] {})})));
おそらく誰かが自分のコードを理解できて、たぶん私のエラーを見つけることさえできます。
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*/;
エラーは何ですか?
は、ブラケットを作成するにそれを強制するために、空の
CodeSnippetExpression
を使用し – user7116C#は分かりませんが、{}は文字列のリテラルですか? (値?) –
私は質問でそれを書いた - "{}"の最後の括弧は現れません。それで、次のようになります:T.Invoke(null、new object [] {new string []}) –