以下のC#スニペットは、PowerShell(.ps1)ファイルに埋め込まれ、System.Management.Automation.RuntimeExceptionを生成します。 "string s"を削除すると例外がなくなります。大文字の "String"を使用しようとしましたが、名前空間 "System.String"とその他のさまざまなアプローチを追加しようとしましたが、引き続き例外が発生しました。これは私にナッツを運転している、なぜこれが起こっているのか理解するのを助けてください。.ps1ファイル内にC#文字列オブジェクトを作成する方法
$code = @"
public static class foo
{
public static bool check()
{
string s;
return false;
}
}
コードはこのように呼び出されます。
try
{
Add-Type -TypeDefinition $code -Language CSharp
}
catch{} // ignore TYPE_ALREADY_EXISTS exception
$res = [foo]::check();
例外の詳細です。
Exception: System.Management.Automation.RuntimeException: unable to find type [foo].
TargetObject: foo
CategoryInfo: InvalidOperation (foo:Typename) [], RuntimeException
FullyQualifiedErrorId: TypeNotFound
InvocationInfo: System.Management.Automation.InvocationInfo
問題を再現できるほどのコードを投稿してください。文字列値 '$ code'を定義すると、あなた自身のクラスがコンパイルされません –