c# - 创建 C# dll 并使用 powershell 方法

标签 c# powershell dll

我创建了一个简单的 C# dll 并使用 RegAsm.exe 注册了它。一个非常简单的方法是在没有参数的情况下调用并返回一个数字,这里是一个简化版本。

namespace AVL_test {
    interface ITestClass {
        int GetNumber();
    }

    [ComVisible(true)]
    public class TestClass: ITestClass {
        public TestClass() { }

        public int GetNumber() {
            return 10;
        }
    }
}

我需要从 Powershell 调用该方法,所以我添加了类型

Add-Type -Path "C:\myPath\AVL_test.dll"

它似乎已加载,因为如果我 [AVL_test.TestClass] 我会得到这个输出

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False TestClass System.Object

但是如果我尝试通过键入[AVL_test.TestClass]::GetNumber() 来调用GetNumber(),我会收到此错误

Method invocation failed because [AVL_test.TestClass] does not contain a method named 'GetNumber'.

我做错了什么吗?

最佳答案

您的方法应该是static,或者您需要创建该类型 (TestClass) 的实例。

最后可以使用

New-Object -TypeName <full qualified type name> -ArgumentList <args>

或者在您的特定情况下:

$test = New-Object -TypeName AVL_Test.TestClass
$test.GetNumber()

关于c# - 创建 C# dll 并使用 powershell 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30097002/

相关文章:

C# 打印属性

c# - View 模型命令中的 BindingExpression 路径错误

powershell - 使用 Powershell Match 匹配变量

powershell - 使用启动进程在远程 Windows 机器上安装 awscli msi 包

windows - 在 Powershell 中删除 file1 中存在于 file2 中的行

c++ - Windows DLL 上的静态链接 libgcc

c++ - 应用程序无法正常启动(0xc00007b)

c# - 文本框填充

java - 在android应用程序中使用dll库

c# - 喜欢子串