gpt4 book ai didi

c# - 什么框架使用 `IServiceProvider` ?

转载 作者:太空狗 更新时间:2023-10-29 23:00:34 24 4
gpt4 key购买 nike

IServiceProvider 基本上只是任何 IOC 容器的通用接口(interface),还是用于特定框架?我正在滚动我自己的轻量级 IOC 容器,我想知道我是否应该实现它。还有其他我应该实现的接口(interface)吗?我对 MEF 或 Unity 都不感兴趣。我已经广泛使用了两者,但它们并不真正适用于我当前的项目。

最佳答案

IServiceProvider 是一个导入的(或可能保留的)COM 接口(interface),旨在用于您查询服务的对象的上下文中的私有(private)功能。术语“服务”在这里的应用相当松散,它最初表示可以根据给定的 GUID 返回的任何 COM 对象。

IServiceProvider @ MSDN (.NET reference)
IServiceProviderImpl Class @ MSDN (C++ ATL reference)

在 .NET 中,您不需要实现它,除非您有专门支持它的客户端,并且在许多情况下,您不需要添加使用 IServiceProvider 隐含的另一个间接级别。此外,您还可以设计自己的方案来共享公共(public)对象或根据 IoC/依赖注入(inject)实现其他使用模式,这些模式根据您的需要更灵活或更严格。

IServiceProvider 的一个很好的历史背景是 IE 浏览器插件规范。在这里,它用于允许插件组件在上下文中使用浏览器主机功能。在 COM 上下文中,此接口(interface)很有用,因为它隐藏了实例化的细节,也可以用作对象构造和使用策略的一部分以避免引用循环。

WebBrowser Customization (Part 2) @ MSDN

关于c# - 什么框架使用 `IServiceProvider` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14695238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com