CSLA .NET 对象类型:处理、结构与序列化
一、对象的处置与终结
在许多情况下,大多数业务对象的字段中仅包含适量的数据,对于这类对象,.NET 的默认垃圾回收机制就足够了。默认垃圾回收机制虽然无法让我们确切知道对象何时会被销毁以及其占用的内存何时会被回收,但这正是垃圾回收的设计初衷,通常不会有问题。
然而,当对象持有“昂贵”或非托管资源直至被销毁时,默认的垃圾回收机制可能就不够用了。这些资源包括打开的数据库连接、磁盘上的打开文件、同步对象、句柄以及任何实现了 IDisposable 接口的其他对象。为了防止应用程序浪费内存或阻止其他可能需要访问文件或重用数据库连接的用户,这些资源需要尽快释放。如果业务对象编写得当,大部分此类问题应该可以避免。数据访问代码应尽可能缩短数据库连接的打开时间,对象在磁盘上打开的任何文件也应如此。不过,在某些情况下,业务对象确实可能合法地包含昂贵资源,例如字段中的多兆字节图像。
实现 IDisposable 接口
在这种情况下,业务对象应实现 IDisposable 接口,以便 UI 代码可以通知业务对象释放其资源。该接口要求对象实现 Dispose() 方法来实际释放这些资源,示例代码如下:
[Serializable]
public class MyBusinessClass :
BusinessBase<MyBusinessClass>,
IDisposable
{
private bool
超级会员免费看
订阅专栏 解锁全文
37

被折叠的 条评论
为什么被折叠?



