問題タブ [reflection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
11 に答える
639260 参照

c# - タイプから新しいオブジェクトインスタンスを作成する方法

Typeコンパイル時にオブジェクトのを常に知っているとは限りませんが、のインスタンスを作成する必要がある場合がありますType

から新しいオブジェクトインスタンスを取得するにはどうすればよいですTypeか?

0 投票する
16 に答える
74145 参照

c# - C# コードを動的に評価するにはどうすればよいですか?

eval("something()");JavaScript でコードを動的に実行することができます。C# で同じことを行う方法はありますか?

私がやろうとしていることの例は次のとおりです: 私は整数変数 (たとえばi) を持っており、「Property1」、「Property2」、「Property3」などの名前で複数のプロパティがあります。の値に応じて、「Property ii 」プロパティで。

これは Javascript を使用すると非常に簡単です。C#でこれを行う方法はありますか?

0 投票する
1 に答える
1429 参照

c# - リフレクションによる OpenOffice での C# の使用

現在アクティブなOpenOfficeドキュメントに C# から直接貼り付けるコードに取り組んでいます。OpenOffice ライブラリはパッケージ化したくないため、含めることはできません。そのため、リフレクションを使用してOpenOffice APIにアクセスしています。

私の質問には、リフレクションによるディスパッチャの使用が含まれます。それに渡す正しいパラメーターを理解できず、タイプの不一致により素敵な「TargetInvocationException」が発生しました。

どうすれば修正できますか?

0 投票する
3 に答える
2981 参照

.net - .net のコール スタックへのプログラムによるアクセス

プログラムからコール スタックにアクセスするにはどうすればよいですか?

0 投票する
2 に答える
10315 参照

c# - 列挙値のカスタム属性にアクセスする簡単な方法を知っている人はいますか?

これは、おそらく例で最もよく示されています。私は属性を持つ列挙型を持っています:

インスタンスからこれらの属性を取得したい:

これはリフレクションを使用しているため、多少の遅延が予想されますが、列挙値のインスタンスが既にある場合に、列挙値を文字列 (名前を反映する) に変換するのは面倒です。

誰かがより良い方法を持っていますか?

0 投票する
4 に答える
5530 参照

c# - 特定の名前を持つ現在のアセンブリでC#インターフェイスの実装を見つける方法は?

IStepいくつかの計算を実行できるInterface という名前があります (「名詞の王国での実行」を参照)。実行時に、クラス名で適切な実装を選択したいと考えています。

0 投票する
4 に答える
985 参照

java - JavaでRFC計算を実行するアルゴリズム

JavaクラスのRFCは、クラスのオブジェクトへのメッセージに応答して、またはクラス内のメソッドによって呼び出すことができるすべてのメソッドのセットです。RFC = M + Rここで、M=クラス内のメソッドの数。R=Mから直接呼び出された他のメソッドの総数。

Cは.classであり、JはRFCを計算する必要がある.javaファイルであると考えています。

ここでM=6およびR=9(ループ内の呼び出しについて心配する必要はありません。単一の呼び出しと見なされます)

Mの計算は簡単です。クラスローダーを使用してCをロードし、リフレクションを使用してメソッドの数を取得します。

Rの計算は直接ではありません。クラスからのメソッド呼び出しの数を数える必要があります。最初のレベルのみ。

RIの計算には、正規表現を使用する必要があります。通常、形式は次のようになります(。を使用しない呼び出しはカウントされません)

また

コールリターンが直接別のメソッドのパラメータになる場合、セミコロンなし。また

これは2つのメソッド呼び出しになります

メソッド呼び出しの他のどのパターンを考えることができますか?Rの計算に使用できるRegExを使用する以外の方法はありますか?


更新:
@McDowell BCEL を使用しているように見えますが、プロセス全体を簡略化できます。やってみよう。

0 投票する
13 に答える
66976 参照

c# - .NET リフレクションのコストはどれくらいですか?

リフレクションの使い方がいかに悪いかをよく耳にします。私は通常、熟考を避け、それなしでは問題を解決できない状況をめったに見つけませんが、私は疑問に思っていました...

アプリケーションでリフレクションを使用したことがある方は、パフォーマンス ヒットを測定しましたか?それは本当に悪いことですか?

0 投票する
16 に答える
99249 参照

c# - C# でメソッド呼び出しをインターセプトするにはどうすればよいですか?

特定のクラスについて、トレース機能が必要です。つまり、すべてのメソッド呼び出し (メソッド シグネチャと実際のパラメーター値) とすべてのメソッド終了 (メソッド シグネチャのみ) をログに記録したいと考えています。

次のことを前提として、これを達成するにはどうすればよいですか。

  • C# 用にサードパーティの AOP ライブラリを使用したくありません。
  • トレースしたいすべてのメソッドに重複したコードを追加したくありません。
  • クラスのパブリック API を変更したくありません。クラスのユーザーは、まったく同じ方法ですべてのメソッドを呼び出せるはずです。

質問をより具体的にするために、3 つのクラスがあると仮定します。

Caller.Callメソッドを変更せずに、およびTraced.Method1およびTraced.Method2への呼び出しを明示的に追加せずに、 Method1およびMethod2への呼び出しごとにLogger.LogStartおよびLogger.LogEndを呼び出すにはどうすればよいですか?

編集: Call メソッドを少し変更することが許可されている場合、どのような解決策がありますか?

0 投票する
4 に答える
16609 参照

python - Python スーパー クラス リフレクション

Python コードがある場合

と私はクラスを持っていますC、それを反復処理する方法はありAますBか? 擬似コードのようなもの:

1つの解決策は、モジュールと機能を検査することです。getclasstree

しかし、これは目標を達成するための「Pythonian」の方法ですか?