、これらのコントロールで依存関係プロパティはSortOrder
、MaxLength
などのようなさまざまな属性を使用します;これらの属性値は、特定のプロパティの並べ替え順序などを識別するためにPropertyGrid
制御に使用されています。カスタム属性はガベージコレクションされませんか?私たちは、さまざまなカスタムコントロールを持っている私のWPFアプリケーションで
ANTSプロファイラを使用して、元のカスタムコントロールがメモリに残っていなくても、これらの属性オブジェクトは常にメモリに残っていることがわかりました。プロファイラは、これらの属性については、この保持グラフを示している - http://weblogs.asp.net/blogs/akjoshi/CustomAttributeRetentionGraph.png
これは任意のリードが起こっている理由は、私がわかりませんか?
プロパティ(DP)に関連付けられた属性(プロパティスコープを持つ)はどうですか?新しいオブジェクトごとに新しいインスタンスが作成されているのがわかります。 – akjoshi
'Properties'と' Fields'は 'Type'の一部です。また、1種類につき1回読み込まれます。 – decyclone
だから、属性を300のプロパティに関連付けると、この属性の300個のオブジェクトは、コントロールが破棄された後でも(オブジェクトが作成されると)メモリに残ります。 – akjoshi