Powershell创建会话对象

时间:2016-07-28 18:05:19

标签: c# powershell

我对PowerShell非常陌生,但我有很多C#经验。我在C#中编写了一个API包装器,我想将它公开为PowerShell Cmdlet。 C#中的典型流程非常标准:

var client = new MyClient("username", "password");
var endpointData = client.GetSomeEndpointData();

问题是,在PowerShell中这样的事情的正确流程是什么,以及如何仅为该会话保留它。我认为它应该类似于以下内容。

Import-Module MyClient.dll
New-MyClient "username" "password"
Get-SomeEndpointData

所以我的问题是

  1. 这是"正确"流向这样的事情
  2. 具体来说,在用于创建Cmdlet的C#代码中看起来是什么样的
    1. 如何为当前的PowerShell会话保留MyClient实例
    2. 如何在需要该实例的其他Cmdlet中访问MyClient实例?
  3. 要说清楚,我不需要实际的代码(例子会很好),但我的google-fu可能只是缺乏今天。 MSDN文档(或等效文档)就足够了。

1 个答案:

答案 0 :(得分:1)

看起来像这样:

Add-Type -Path 'c:\fullpath\to\myclient.dll'
$client = New-Object MyClient("username", "password")
$endpointData = $client.GetSomeEndpointData()