私はかなり複雑なオブジェクトグラフG
をオブジェクトo1
をG
に持っています。 G
はNHibernateを使用してデータベースに書き込まれます。ただし、すでに永続的なエントリがある場合は、データベースにとしましょう。私はo1_p
の代わりにo1
を置き換えます。したがって、データベース内に冗長エントリは存在しないはずです。今、私はNHibernateにその仕事をさせ、その後私はデータベースを調べます。今私は避けようとした状況を正確に持っています。オリジナルのo1_p
オブジェクトとo1
のエントリがデータベースにあります。私が今までに持っていた唯一の説明はG
の別のルート経由で到達可能であるため、hibernateはそれをデータベースに入れます。これが当てはまるかどうかを判断する方法はありますか。つまり、ガベージコレクタに参照数がo1
であるかどうかを尋ねることができます。またはグラフ言語で話す:o1
には何個の受信エッジがありますか?C#でオブジェクトグラフ内でオブジェクトに到達できるかどうかをどのように判断できますか?
0
A
答えて
1
いいえ、ガベージコレクタにo1の参照数を問い合わせることはできません。.NETでは参照カウントを使用しません。
基本的には、すべてのグラフナビゲーションを自分で実行する必要があります。これはおそらく、すでに調査したオブジェクトのキャッシュと組み合わされた訪問者アルゴリズムをオブジェクトグラフに実装することを意味します。はい、このは、GCと同じようなですが、その処理にフックする方法はないと思います。 (そして、おそらく、GCが何かがガベージではないとわかっていて、とにかくそれを無視して、あなたのコードには適さない特殊なトリックを含むエッジケースがあるでしょう。)
関連する問題
- 1. scpがPerlから入手できるかどうかはどのように判断できますか?
- 2. オブジェクトのタイプが「テキスト」か「チェックボックス」かどうかをどのように判断できますか?
- 3. サブディレクトリがC#に存在するかどうかはどのように判断できますか?
- 4. リモートホストが到達可能かどうかを判断する最速の方法
- 5. 別のアクティビティのインテントにどのように到達できますか?
- 6. リモートサーバーがマルチスレッドであるかどうかはどのように判断できますか?
- 7. Rustライブラリが非推奨であるかどうかはどのように判断できますか?
- 8. 到達可能であると判断された場合、FReachableオブジェクトはどうなりますか?
- 9. OOPでオブジェクトの責任をどのように判断するのですか?
- 10. コレクションに上限があるかどうかはどのように判断できますか?
- 11. E4Xの式が一致するかどうかはどのように判断できますか?
- 12. UIPrintInteractionControllerが表示されているかどうかをどのように判断できますか?
- 13. JTable内のどのセルが選択されたかをどのようにして判断できますか?
- 14. 戻るボタンが表示されているかどうかはどのように判断できますか?
- 15. デバイスに振動があるかどうかを判断できますか?
- 16. 抽象メソッドが実装されているかどうかはどのように判断できますか?
- 17. cURLハンドルがタイムアウトしたかどうかをどのように判断できますか?
- 18. javaサーブレットでクライアントのIPアドレスを正確に判断できるかどうか
- 19. Javascriptでは、2つのオブジェクトが同じかどうかをどのように判断しますか?
- 20. WPFでImage.Clone()をどのように達成できますか?
- 21. AJAX + cross-domain + jsonpを使用してURLに到達できるかどうかをテストできますか?
- 22. DIBがボトムアップであるかトップダウンであるかは、どのようにして判断できますか?
- 23. F15が押されたかどうかはどのように判断できますか?
- 24. プロセスが終了したかどうかはどのように判断できますか?
- 25. AsyncPostBackTrigger EventName - どのように判断するのですか?
- 26. モデルがデータストア内で永続的であるかどうかをNDBで判断できますか?
- 27. C#VS2010アプリケーションでデバッグ中かどうかを判断する
- 28. C++オブジェクトがtime_tであるかどうかを判断する方法
- 29. C#で一連のファイルが同一であるかどうかを素早く判断できますか?
- 30. どうすればajaxメソッドのtextBox値に到達できますか?