.NETに関する備考と例

以下のセクションは、.NET エージェント構成で使用される Getter チェーンに適用されます。

注: 2 つのバックスラッシュを使用して .NET の Getter チェーン内のバックスラッシュをエスケープします。

パラメータの型宣言

.NETエージェントはパラメータのタイプを以下の方法で認識します。

  • 辞書、つまりプロパティアクセサーに関連付けられているあらゆるものは、文字列にデフォルト設定されている通常のパラメータセットを使用。
  • 配列は単精度整数をパラメータとして使用。

したがって、0 string/0 get_Item 0 int/0

Getter チェーンが、デフォルトタイプ以外のパラメータを持つメソッドを使用する場合、パラメータタイプを宣言する必要があります。

  • 以下は、オーバーロードされた Susbstring() メソッドを解決するパラメータタイプの宣言方法を示しています。フォワードスラッシュがタイプセパレータの機能を果たしています。

    GetAddress(appdynamics, sf).Substring(int/0, int/10)

    たとえば、GetAddress(appdynamics, sf) が「303 2nd St, San Francisco, CA 94107」を返した場合、完全な Getter チェーン式では「303 2nd St」が返されます。

  • 以下の例は、浮動小数点数パラメータ、論理値パラメータ、整数パラメータをとるユーザ定義メソッドのパラメータタイプの宣言方法を示しています。フォワードスラッシュがタイプセパレータの機能を果たしています。

    GetAddress(appdynamics, sf).MyMethod(float/0\\.2, boolean/true, boolean/false, int/5)

インデックス付きプロパティおよび辞書の値へのアクセス

Getterチェーンが辞書オブジェクトにアクセスする場合、以下の構文を使ってその値にアクセスできます。

  • キー「suze.smith」の値を返す例。
    UserDictionary.[string/suze\\.smith]
  • 以下の例では、暗黙的 Getter を使用してキー「suze.smith」の値を返す。
    UserDictionary.get_Item(suze\\.smith)

.NET Getterチェーンの文字または正規表現の一致による分割

文字による一致、または正規表現パターンとの一致により文字列として、値を分割することができます。分割オペレーションの結果は文字列または文字の配列で、Getter チェーンで配列インデックス値によって参照できます。

以下の例は、Getterチェーンにおける文字と文字列の正規表現分割オペレーションの使用方法を示しています。

文字による分割

  • 以下のチェーンは、フォワードスラッシュ文字で URL を分割する。この場合、最初のスラッシュはタイプセパレータとして機能。Getterチェーンは配列の4つ目のアイテムを返す。

    GetUrl().Split(char[]//).[3]

    エージェントがこの Getter チェーンを URL http://howdyworld.example.com/Search/Airfare に適用した場合は、「Search」が返される。

  • 次の例では、フォワードスラッシュ文字で分割され、その結果は配列の長さとなる。

    GetUrl().Split(char[]//).Length
  • 次はセミコロン区切り文字を使用する URI のトランザクション分割ルールの例。Getter チェーンはフォワードスラッシュで分割した後、4 番目の要素がセミコロンで分割される。

    GetUri().Split(char[]//).[3].Split(char[]/;).[0]

    エージェントがこの Getter チェーンを URL http://HowdyWorld.example.com/create-user;sessionid=BE7F31CC0235C796BF8C6DF3766A1D00?act=Add&uid=c42ab7ad-48a7-4353-bb11-0dfeabb798b5 に適用した場合は、create-user が返される。

正規表現による分割

文字列を基にしたパターン一致で値を分割すると、さらにコントロールが可能です。特に、リクエスト本文内におけるコンテンツの一致など、複雑なマッチングが必要となる環境でパターン一致が役立ちます。

次に、Getter チェーンが GetAddress() で返される値を分割する例を示します。

GetAddress().Split(string/\\W+).[6]

303 2nd St, San Francisco, CA 94107 CA などのアドレスを指定

HTTPリクエスト用のGetterチェーンの作成

.NETエージェントでは、HTTPリクエスト用のGetterチェーンに特別な構文が必要です。

注: 同じティアのフルフレームワークアプリケーション上にASP.NETとASP.NET Coreの両方がある場合、2つのフレームワークで異なるオブジェクトを使用してHTTPリクエストが処理されるため、1つのGetterチェーンを両方に適用することはできません。
  • Getterチェーンの境界に線を引くには、次の構文を使用。

    ${myobject.myproperty}
  • 以下は、ユーザープリンシパルを決定する例。

    ${Context.User.Identity.Name}

この構文は、たとえば以下のような場所に使用します。

  • HTTPリクエストデータコレクタ
  • ASP.NETトランザクション検出のカスタム式