可以注册仅静态协议吗?

时间:2019-01-22 17:05:02

标签: swinject

不幸的是,某些库只具有静态方法。是否可以使Swinject注册类型以返回类型而不是类型的实例?很难仅存静态库进行测试。

1 个答案:

答案 0 :(得分:0)

在当前状态下,这是不可能的。解决此问题的方法之一是创建自定义类型提供程序:

protocol LibraryProtocol {}
class Library: LibraryProtocol {}

class LibraryProvider {
    let library: LibraryProtocol.Type
    init(_ library: LibraryProtocol.Type) { self.library = library }
}

container.register(LibraryProvider.self) { _ in LibraryProvider(Library.self) }
相关问题