整个应用程序生命周期一个对象或每次调用一个对象 + 处置
One object for whole application life or one object per call + dispose
我有一个 IDisposable class A。我需要在 class B 的另一个方法 M 中使用 A 的对象。方法 M 被调用多次(一天百万次)。我应该在 M 中使用 A 的本地对象并在完成后处理,还是应该在 B 中声明 class 级静态成员并在应用程序结束后处理。
如果我不清楚,请告诉我。
应用程序生命周期中的一个对象是单例;虽然它们在特定情况下很有用,但它们通常不是一个好主意。有关原因的详细说明,请参阅 this question。
实现 IDisposable
的 类 最好在 using
语句的范围内使用,该语句将为您处理它。
一个明显的例外是,在单个业务操作的上下文中需要对一次性 class 的多次调用——并且该操作过于分散而无法包含在 using
语句。在这种情况下,将所有调用包装到第二个一次性 class 中,该 class 将第一个作为私有成员。当第二个 class 被处置时,它应该处置任何可处置的私有成员。
我有一个 IDisposable class A。我需要在 class B 的另一个方法 M 中使用 A 的对象。方法 M 被调用多次(一天百万次)。我应该在 M 中使用 A 的本地对象并在完成后处理,还是应该在 B 中声明 class 级静态成员并在应用程序结束后处理。 如果我不清楚,请告诉我。
应用程序生命周期中的一个对象是单例;虽然它们在特定情况下很有用,但它们通常不是一个好主意。有关原因的详细说明,请参阅 this question。
实现IDisposable
的 类 最好在 using
语句的范围内使用,该语句将为您处理它。
一个明显的例外是,在单个业务操作的上下文中需要对一次性 class 的多次调用——并且该操作过于分散而无法包含在 using
语句。在这种情况下,将所有调用包装到第二个一次性 class 中,该 class 将第一个作为私有成员。当第二个 class 被处置时,它应该处置任何可处置的私有成员。