私が抱えている問題は、どのトピックでも取り上げられていないか、少なくともまだ見つかっていないようです。
クラス内でも定義されている列挙型パラメーターをコンストラクターが予期する C# アセンブリを使用しようとしています。
namespace Utils.Translate
{
/// <summary>
/// Converts ASCII to EBCDIC or vice-versa
/// </summary>
public class AsciiEbcdic
{
/// <summary>
/// The enumerator CharSet2Use determines which target character set to use.
/// </summary>
public enum CharSet2Use
{
A2E = 0, //ASCII to EBCDIC
E2A // EBCDIC to ASCII
};
// Constructor
public AsciiEbcdic( CharSet2Use whichSet )
{
}
}
}
アセンブリの読み込みに問題はありません:
[System.Reflection.Assembly]::LoadFile( "EbcdicAscii.dll" )
ただし、インスタンス化しようとすると、
$nameSpace = "Utils.Translate.EbcdicAscii"
$var = New-Object $nameSpace( [Utils.Translate.EbcdicAscii+Char2Set2Use]::A2E )
エラーが発生します:
Unable to find type [Utils.Translate.EbcdicAscii+Char2Set2Use]: make sure that the assembly containing this type is loaded.
私も次のことを試しました:
$var = New-Object $nameSpace -ArgumentList [Utils.Translate.EbcdicAscii+Char2Set2Use]::A2E
エラーが発生します:
New-Object : Cannot find type [Utils.Translate.EbcdicAscii]: make sure the assembly containing this type is loaded.
また、パラメーターを A2E、「A2E」、0、「0」として渡そうとしましたが、役に立ちませんでした。
クラス内で定義された列挙子データ型を渡して、このオブジェクトをインスタンス化する方法はありますか?