18、CSLA .NET 对象类型:处理、结构与序列化

CSLA .NET 对象类型:处理、结构与序列化

一、对象的处置与终结

在许多情况下,大多数业务对象的字段中仅包含适量的数据,对于这类对象,.NET 的默认垃圾回收机制就足够了。默认垃圾回收机制虽然无法让我们确切知道对象何时会被销毁以及其占用的内存何时会被回收,但这正是垃圾回收的设计初衷,通常不会有问题。

然而,当对象持有“昂贵”或非托管资源直至被销毁时,默认的垃圾回收机制可能就不够用了。这些资源包括打开的数据库连接、磁盘上的打开文件、同步对象、句柄以及任何实现了 IDisposable 接口的其他对象。为了防止应用程序浪费内存或阻止其他可能需要访问文件或重用数据库连接的用户,这些资源需要尽快释放。如果业务对象编写得当,大部分此类问题应该可以避免。数据访问代码应尽可能缩短数据库连接的打开时间,对象在磁盘上打开的任何文件也应如此。不过,在某些情况下,业务对象确实可能合法地包含昂贵资源,例如字段中的多兆字节图像。

实现 IDisposable 接口

在这种情况下,业务对象应实现 IDisposable 接口,以便 UI 代码可以通知业务对象释放其资源。该接口要求对象实现 Dispose() 方法来实际释放这些资源,示例代码如下:

[Serializable]
public class MyBusinessClass : 
  BusinessBase<MyBusinessClass>, 
  IDisposable
{
  private bool 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值