問題タブ [cqlinq]
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.
ndepend - 型をパラメーターとして受け取るメソッドのリストの CQLINQ?
(互換性のある) 型またはインターフェイスを少なくともパラメーターの 1 つとして取得するすべてのメソッドのリストを取得する CQLINQ とは何ですか?
ndepend - 特定の型またはインターフェイスを返すメソッドのリストの CQLINQ?
(互換性のある) 特定の型またはインターフェイスを返すメソッドのリストを取得する CQLINQ とは何ですか?
ndepend - ネストされた可視性のための CQLinq ルールの改良
NDepend 5.4.1 があり、可視性が低くなる可能性のあるフィールド/タイプ/メソッドのクエリを変更したいと考えています。クエリを違反と見なすかどうかを決定する際に、囲んでいるクラスのスコープを考慮に入れる必要があります。
例えば、
A、B、または C が、いずれかを内部にする必要があるという違反を生成することは望ましくありません。一方、クラス X が public で、A、B、C のいずれもアセンブリの外で使用されていない場合、それらはすべて違反を生成するはずです。
これを実現するために、次の行をクエリに追加しました。
フィールドの場合、新しいクエリは次のようになります。
メソッドの可視性と型の可視性のクエリを同様の方法で変更しましたが、型を除いて、囲んでいる親型があることを確認します。
一見すると、いくつかのテストを実行した後、これは正しいことをしているように見えます。私の質問は、これが誤検知を生成するか、違反を見逃すかどうかです。列挙型の可視性の順序付け (比較) がすべての場合に正しいことを行うかどうかわからないためです。
ndepend - ndepend - CQLinq サードパーティの汎用メソッドの型パラメーターとして使用される型を検索
私はCQLinqをいじっていて、サードパーティのジェネリックメソッドのジェネリック型パラメーターとして使用されるプロジェクト内の型を見つけるためのクエリを作成しようとしていました。
より具体的には、AutoMapper と呼ばれるサードパーティ ライブラリを使用します。このライブラリには、静的ジェネリック メソッドMapper.CreateMap<T1, T2>()
. 私のコードのどの型が CreateMap メソッドのパラメータとして使用されているかを調べるクエリを作成することはできますか?
ありがとう。
c# - CQLinq で型が作成されたときにクエリを実行する
次のコードがあるとしましょう:
MyBase
クラスが継承され、どこかで作成されたすべての場所 (または型) を返すクエリを CQLinq で作成することは可能new
ですか?
クエリが返されるかMyService1
、MyService2
さらに良いMyService2.Foo()
私がこれまでに持っているもの:
.net - 複数のクエリで CQLinq コードを再利用できますか?
たとえば、多くのコントロールを含むソリューションを分析しているとしましょう。
2 つの CQLinq クエリを記述して、悪意のあるコード (EvilMethod1 など) を持つすべてのクラスと、2 つの別個のクエリで本当に悪意のあるコード (EvilMethod2 など) を使用するクラスをすべて報告したいと考えています。
このクエリで分析する必要があるすべての型を見つけるために、次のようなコードを記述します。
このコードは明らかに両方のクエリで使用されます。両方のクエリでこのコードを参照する方法はありますか、それとも複製する必要がありますか?
ndepend - CQLinq を使用して、単一のクエリ内でメソッドとフィールドのメトリックを取得する方法
NDepend で CQLinq を使用して識別子の平均長を計算しています。クラス、フィールド、およびメソッドの名前の長さを取得したいと考えています。私は CQlinq のこのページを見ていきました: http://www.ndepend.com/docs/cqlinq-syntax、そして私は次のようなコードを持っています:
それは動作しません、1 つのエラーは言う:
「System.Collections.Generic.IEnumerable」には「Union」の定義が含まれていません...
もう1つは次のとおりです。
「System.Collections.Generic.IEnumerable」から「System.Collections.Generic.HashSet」に変換できません
ただし、MSDNによると、IEnumerable インターフェイスは Union() および Concat() メソッドを定義します。
Linq とまったく同じように CQLinq を使用することはできないようです。とにかく、単一のクエリ内でタイプ、メソッド、およびフィールドのドメインから情報を取得する方法はありますか?
どうもありがとう。
c# - より高速な収集の機会を検索する NDepend
膨大なレガシー コード ベースがあり、それを最適化し、高速化したいと考えています。このため、リストと配列を HashSets と Dictionaries に置き換える機会を探すことを考えました。
.NET Framework Usage / System.collection の下に、次の NDepend クエリがあります。
このクエリでは不十分です。次のコードで 1 つの関数がリストされます。
より良いクエリは次のとおりです。
これにより、4 つの関数 (List、IList、int[]、IEnumerable) がリストされます。私はCQLinqに関して初心者です。私の質問は次のとおりです。
- 不適切な .NET コンテナーの使用法 (contains だけでなく、他の可能な操作) を検出するためのより良いクエリを作成できる人はいますか?
- コンテナの不適切な使用をどのように検出しますか?
最後のコメントとして、一部のビジネス ロジックは大量のデータを処理するため、適切なコンテナー、データ構造、およびアルゴリズムが重要になります。