我在一个旧的分支中找到了这一行,并且由于我对(无法访问的)作者非常尊重,所以我试图弄清一个特定的行,更确切地说是最后的lambda:
container.Register(Of ServiceStack.Configuration.IResolver)(Function(x) x)
container
是一个Funq.Container
通过ServiceStack
。智慧告诉我,lambda正在填充一个(factory As Func(Of Funq.Container, ServiceStack.Configuration.IResolver))
。
关于作者,我可以假设两件事:他是比我更好的编码器,并且他可能还没有完成。就目前而言,我猜测此lambda是有意的,而不是没有明确意图的未完成的代码,但是到目前为止,没有人可以帮助我理解为什么。
该容器是依赖项注入容器。其他地方的代码将向容器询问接口实例。这里的代码是注册代码,它告诉容器如何提供IResolver
。此外,它的设计目的是接受工厂功能。稍后解析将调用该函数以产生所请求的IResolver
。
在这种情况下,容器本身似乎实现了IResolver
。lambda是一个返回其参数的函数,因此很简单;它的参数是a Funq.Container
,并且返回a ServiceStack.Configuration.IResolver
,因此可以编译的唯一方法是容器实现该接口。
因此:容器实现IResolver
。该代码注册了一个工厂函数,该函数总是在被调用时返回容器本身。
这样做似乎很奇怪。我一点都不了解ServiceStack,所以我不确定为什么要这样做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句