Powershell可以从外部C#dll调用子类

韦恩·埃文斯(Wayne Evans)

我有一些简单的代码来自:https : //www.codeguru.com/csharp/csharp/cs_misc/dllsandexecutables/article.php/c4239/Creating-and-Using-C-DLLs.htm

生成一个dll来做一些简单的数学运算。我想添加一个子类

namespace MathFunctions
{
    public class Add : MultiClass
    {
        public static int MultiplyAndAdd(int a, int b, int c)
        {
            return (a * b) + c;
        }
    }
}

然后从powershell调用它。

对主类运行powershell可以返回数据,而不会出现问题

Import-module("C:\temp\MathFunctions.dll")
[MathFunctions.MultiClass]::Multiply(10, 2)

返回预期的20,但是我无法确定访问子类的格式。我尝试过以下变化:

[MathFunctions.MultiClass.Add]::MultiplyAndAdd(10, 2, 3)
[MathFunctions.MultiClass+Add]::MultiplyAndAdd(10, 2, 3)
[MathFunctions.MultiClass]:Add:MultiplyAndAdd(10, 2, 3)
[MathFunctions.MultiClass]::Add.MultiplyAndAdd(10, 2, 3)

但我总是在

Unable to find type [MathFunctions.MultiClass.Add]

我也通过以下方法在powershell中寻找方法:

[MathFunctions.MultiClass] | get-member  -MemberType method    

但未列出我的子类。

我知道我访问不正确。我不知道如何从powershell访问子类。

我非常确定可以访问子类,因为最接近的示例是:PowerShell IComparable与子类,但是我看不到他是如何给它别名的。

谢谢

韦恩·埃文斯(Wayne Evans)

谢谢bluuf,他为我指明了正确的方向。

我最终使用dotPeek分割了dll(现在它是公共的[blush])。

代码如上,powershell方法只是子类名称:

[MathFunctions.Add]::MultiplyAndAdd(5,2,3)

这给出了答案-不是错误

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章