我正在编写一个 Active Directory 包装器,试图遵循 SOLID 和其他最佳实践。该接口当前为“IActiveDirectory”。
我现在遇到的问题是实现 ActiveDirectory 必须实现 IDisposable 以处理在此包装器中创建和处理的一些资源,并且我不确定如何在尝试对接口等进行编码时解决这个问题。 . 我不想创建一个泄漏的抽象(即用 IDisposable 装饰 IActiveDirectory。)由于底层依赖项的性能,我无法使服务细化(即,将资源的创建/处置范围限定为方法调用)。
我目前有一个工厂,以便 IActiveDirectory 的消费者可以按需创建一个工厂,但我需要一种干净、方便的方式让消费者表示它已使用资源完成。
如何在不泄露资源包装抽象的情况下为消费者提供合同(即接口)?我应该只公开没有接口的实现吗?我的消费者或我的 DI 容器是否有办法管理此服务的生命周期?