gpt4 book ai didi

c# - 如何在 c# powershell 模块中运行启动代码

转载 作者:太空宇宙 更新时间:2023-11-03 20:54:49 25 4
gpt4 key购买 nike

我在 c# 中创建了一个简单的 PowerShell 模块,它实现了一些 cmdlet,我希望能够在导入模块时运行代码。

在 google 和命名空间中环顾四周,似乎没有合适的方法来执行此操作。

到目前为止,我想出的解决方法是创建一个 psm1 或 ps1 文件,该文件在加载模块并执行启动操作时运行(宁愿不使用它,因为脚本在某些环境中被阻止,这将运行上)。

其他选项是我已经能够通过创建一个 CmdletProvider 来做到这一点,但它在使用 new-psdrive 时会在提供程序列表中创建一个垃圾条目。

[CmdletProvider("junkprovider", ProviderCapabilities.None)]
public class Startup : CmdletProvider
{
Public Startup()
{
// Startup code here
}
}

有没有办法正确地做到这一点,或者我将不得不使用技巧?

最佳答案

您可以实现 System.Management.Automation.IModuleAssemblyInitializer界面。

using System.Management.Automation;

namespace MyModule
{
public class MyModuleAssemblyInitializer : IModuleAssemblyInitializer
{
public void OnImport()
{
// Initialization code here.
}
}
}

当程序集作为模块导入时,Import-Module 命令将调用 OnImport

关于c# - 如何在 c# powershell 模块中运行启动代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51624686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com