该城堡维基说,在几个地方,我应该始终调用container.Release()通过容器解决组件.对于复杂的生活方式管理技术(例如LifeStyle.Pooled)或使用专门设施时,这显然是有意义的......
但是,我真的必须释放单件(直到容器被处置)和非一次性瞬态物体?如果我逐步调用Release()调用瞬态对象或单例,这些调用似乎是多余的 - .eg在瞬态对象未实现IDisposable的情况下,内核只是注意到它没有跟踪对象并返回...
似乎存在"组件负担"的概念来跟踪在解析瞬态对象时可能构造的其他一次性组件的"间接"引用.我知道如果你不知道它们是否具有这种间接依赖关系,就必须释放瞬态对象.这是"敦促"所有Castle用户始终发布组件的主要原因吗?
我想以这样一种方式托管动态语言运行时(DLR),以便在其中运行任意脚本的用户不能使该进程失效?
在DLR托管规范描述了如何举办DLR在一个单独的ApplicationDomain.这允许拆除和卸载脚本运行时并通过CAS限制某些操作(例如,我可以限制文件系统访问或禁止使用反射).
但有没有办法,例如: - 限制脚本使用的最大内存量? - 限制脚本创建的线程数? - 检测死锁脚本?
我认为使用为SQL Server开发的非托管.net托管API可以实现这种精细控制.这是方向吗?是否有这种通用.net沙盒的开源项目?
以下是我发现的一些可能有用的参考资料: