将自定义对象从C#传递给Powershell

nas*_*ras 5 c# powershell

我有一个C#类,它应该通过传递一个Log对象来执行Powershell脚本.Log完全用C#编写,并且应该在C#代码和Powershell之间共享以实现常见的日志记录.

有人可以告诉我如何将自定义对象从C#传递给Powershell并在那里使用它吗?

Joh*_*mer 1

Log您可以通过将类编译成程序集并在 PowerShell 中使用LoadFile在 PowerShell和 C# 之间共享类(应该在 V1 和 V2 中工作)

$lib = [System.Reflection.Assembly]::LoadFile('path to your dll');
$lib.Log("Terrible things have happened!")
Run Code Online (Sandbox Code Playgroud)

但是,如果您想在 PowerShell 和 C# 之间共享类的实例,您可以使用SessionStateProxy.SetVariable.