[英]In the context of Autofac: What is the difference between a Service and a Component?
Service
和Component
之間到底有什么區別? 擴展方法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
由一個或多個服務描述。 即: Component
是ServiceA
Service
用於描述Component
,並將用於定義組件之間的關系。 即: ComponentA
需要serviceB
和serviceC
。
在下面的代碼中
builder.RegisterType<XXX>()
.As<IA>()
.Named<IB>("X");
XXX
將是由類型化服務和命名服務描述的Component
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.