gpt4 book ai didi

function - 如何在 PowerShell 中创建和使用自定义函数属性?

转载 作者:行者123 更新时间:2023-12-04 16:46:04 34 4
gpt4 key购买 nike

我希望能够为我的 powershell 函数创建和分配自定义属性。我到处看,似乎有可能,但我还没有看到一个例子。我在 C# 中创建了一个自定义属性,并在我的 powershell 脚本中引用了程序集。但是,我收到一条错误消息 Unexpected attribute 'MyDll.MyCustom'.
这是我所拥有的:

MyDll.dll 中的 MyCustomAttribute:

namespace MyDll
{
[AttributeUsage(AttributeTargets.All, Inherited = true, AllowMultiple = false)]
public sealed class MyCustomAttribute : Attribute
{
public MyCustomAttribute(String Name)
{
this.Name= Name;
}

public string Name { get; private set; }
}
}

PowerShell 脚本:
Add-Type -Path "./MyDll.dll";
function foo {
[MyDll.MyCustom(Name = "This is a good function")]

# Do stuff
}

然而,值得注意的是,如果我这样做:
$x = New-Object -TypeName "MyDll.MyCustomAttribute" -ArgumentList "Hello"

它工作正常。所以类型显然被正确加载。我在这里缺少什么?

最佳答案

看起来你需要改变两件事:

  • 命令属性需要在语法上位于 param() 之前堵塞。
  • 使用 Name =说明符似乎导致 PowerShell 解析器将属性参数视为初始值设定项,此时构造函数将无法解析。

  • function foo {
    [MyDll.MyCustom("This is a good function")]
    param()
    # Do stuff
    }

    关于function - 如何在 PowerShell 中创建和使用自定义函数属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41525582/

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