2013-03-01 9 views
25

徹底的に文書化したいという人のために、PowerShell V3に追加されたSupportsWildcards属性を発見してうれしかったです。私は適切にその属性で私のライブラリのパラメータを装飾しています。長期的には問題はありませんが、短期的には、いろいろな理由(私を含む)でV2を使用している人がたくさんいます。V2でPowerShell V3の属性を模擬する方法

1つの属性のために、私の機能の一部がPowerShell V2で動作しなくなることは愚かなようです。だから、私はV2で本質的にそれを "ノーオペ"に変えるための属性を模倣する方法を探している。

  1. は基本的に空のカスタム属性を作成します。

    ソリューションは、私はそれを見るように、2つの部品を必要とします。

  2. これはV2で有効にしますが、V3では無視されます(したがって、正しいV3属性が適切に動作するようにします)。

私は両方の部分についてガイダンスを探していますが、以前はカスタム属性で再生していませんでした。

+1

うーん...なぜこの質問についてこのような不安があったのか分かりませんが、本当に答えを探しています。私はそれをより適切に言い換えるための提案を歓迎します! –

答えて

2

おそらく、これを試すことができます。

Add-Type @"  
     public class CustomAttribute : System.Attribute 
     { 
      public bool SupportSomething { get; set; } 
     } 
    "@ 

    function Do-Something { 
     param(
      [CustomAttribute(SupportSomething=$true)] 
      $Command 
     ) 
    } 

    $parameters = Get-Command -Name Do-Something | Select-Object -ExpandProperty Parameters 
    $parameters["Command"].Attributes 

次に出力:

SupportSomething : True 
    TypeId   : CustomAttribute 

私たちは、最初のあなたもPowerShellで行うことができ、C#で属性を定義します。 パラメータに属性を追加します。次に、属性のリストを取得します。より多くの属性の例については、hereを参照してください。

+0

私もこれを見つけました。[link](http://huddledmasses.org/more-custom-attributes-for-powershell-parameters/) – Coding101

+0

@msorens、これはあなたの質問に答えましたか?それができたら答えてください... – Joost

関連する問題