我有一些简单的代码来自: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与子类,但是我看不到他是如何给它别名的。
谢谢
谢谢bluuf,他为我指明了正确的方向。
我最终使用dotPeek分割了dll(现在它是公共的[blush])。
代码如上,powershell方法只是子类名称:
[MathFunctions.Add]::MultiplyAndAdd(5,2,3)
这给出了答案-不是错误
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句