在 PowerShell 中调用通用静态方法

2024-04-12

如何在 Powershell 中调用自定义类的通用静态方法?

给定以下课程:

public class Sample
{
    public static string MyMethod<T>( string anArgument )
    {
        return string.Format( "Generic type is {0} with argument {1}", typeof(T), anArgument );
    }
}

这被编译成程序集“Classes.dll”并加载到 PowerShell 中,如下所示:

Add-Type -Path "Classes.dll"

调用 MyMethod 方法的最简单方法是什么?


正如 @Athari 所说,调用 MyMethod 的最简单方法是使用 MakeGenericMethod。由于他实际上没有展示如何做到这一点,因此这里是一个经过验证的工作代码示例:

$obj = New-Object Sample

$obj.GetType().GetMethod("MyMethod").MakeGenericMethod([String]).Invoke($obj, "Test Message")
$obj.GetType().GetMethod("MyMethod").MakeGenericMethod([Double]).Invoke($obj, "Test Message")

带输出

Generic type is System.String with argument Test Message
Generic type is System.Double with argument Test Message
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 PowerShell 中调用通用静态方法 的相关文章

随机推荐