簡體   English   中英

在 Autofac 的上下文中:服務和組件之間有什么區別?

[英]In the context of Autofac: What is the difference between a Service and a Component?

ServiceComponent之間到底有什么區別? 擴展方法RegisterComponent()與此定義有何關聯?

Autofac 的詞匯表將其定義如下:

成分

聲明它提供的服務和它使用的依賴項的代碼體

服務

在提供組件和消費組件之間共享的明確定義的行為契約

這讓我很困惑.. 說一個組件使用多個服務是否正確? 類似於下面的例子?

public interface IServiceA
{
    void DoSomething();
}

public ServiceA : IServiceA
{
    void DoSomething()
    {
        // Do some magic 
    }
}

public class ComponentA
{
    private readonly IServiceA serviceA;

    public ComponentA(IServiceA serviceA)
    {
        this.serviceA = serviceA;
    }

    public void SomeOperation()
    {
        this.serviceA.DoSomething();
    }
}

或者一個組件總是一個服務/接口的實現? 我只是不明白。

如果有人能用一個可捕捉的例子來澄清,我將不勝感激。

Component是在解析過程之后將成為具體代碼的東西。

一個Component由一個或多個服務描述。 即: ComponentServiceA

Service用於描述Component ,並將用於定義組件之間的關系。 即: ComponentA需要serviceBserviceC

在下面的代碼中

builder.RegisterType<XXX>()
       .As<IA>()
       .Named<IB>("X"); 

XXX將是由類型化服務和命名服務描述的Component

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM