Castle Windsor を使用して、一時的なライフスタイルで構成されたコンポーネントを作成しました。
<component id="publish.mapping.default"
service="IMyService, MyAssembly"
type="MyServiceImplementation, Myassembly"
lifestyle="transient" />
次のように使用されます。
var service = container.Resolve<IMyService>(componentId);
// service usage ....
// service goes out of scope ...
私の質問は、サービス インスタンスが範囲外になった後にガベージ コレクションされるのか、それともキャッスル ウィンザーが参照を保持するのかということです。これは、後者が当てはまる可能性があることを意味します-しかし、そこに投稿されたリンクを調べた後、議論が参照を保持することに関するものなのか、それとも IDisposable を実装する場合にオブジェクトが破棄されることを保証することに関するものなのかわかりません. オブジェクトを破棄する必要はありません。
ウィンザー城がインスタンスを保持している場合、これを防ぐ簡単な方法はありますか (おそらく構成によって) ?
編集
リリース追跡ポリシーを設定する必要があるようです。これは xml 構成ファイルで構成できますか、それともコードで設定する必要がありますか? コンポーネントごとにリリース追跡ポリシーを設定できますか?