C# 如何对表示可组合行为的依赖项使用依赖项注入?
我正在编写一个ASP.NETWebAPI Web服务,它需要对其他Web服务进行REST调用。该类支持通过传入可实现发送前和发送后功能的来更改其行为 我想利用HttpClient的组合属性,根据我调用的web服务添加各种行为集。因此,类ServiceA知道它将要调用的外部服务需要向HttpClient添加哪些行为,而类ServiceB知道它需要添加哪些行为 我还想使用依赖项注入为ServiceA或ServiceB实例提供其所需的HttpClient实例,以便可以轻松模拟这些依赖项进行单元测试 我所开始的工作是创建一个接口类,它表示每一组组合行为,这样我就可以将接口直接放入服务类的构造函数中:C# 如何对表示可组合行为的依赖项使用依赖项注入?,c#,dependency-injection,composition,C#,Dependency Injection,Composition,我正在编写一个ASP.NETWebAPI Web服务,它需要对其他Web服务进行REST调用。该类支持通过传入可实现发送前和发送后功能的来更改其行为 我想利用HttpClient的组合属性,根据我调用的web服务添加各种行为集。因此,类ServiceA知道它将要调用的外部服务需要向HttpClient添加哪些行为,而类ServiceB知道它需要添加哪些行为 我还想使用依赖项注入为ServiceA或ServiceB实例提供其所需的HttpClient实例,以便可以轻松模拟这些依赖项进行单元测试 我
public interface IFooBarHttpClient
{
HttpResponseMessage SendAsync( HttpRequestMessage ); // etc
}
public class ServiceA
{
public ServiceA( IFooBarHttpClient httpclient ) {}
}
然后使用从HttpClient继承的类实现该接口,并在调用基类构造函数时添加所需的DelegatingMessageHandler
我认为这种方法存在两个问题:
公共类服务a
{
公共服务a(IHttpClienthttpclient){}
}
对于以这种方式构成行为的类,是否有合理的方法使用依赖项注入?或者我应该换一个方向思考吗?请参阅这些文章和
public class ServiceA
{
public ServiceA( IHttpClient< Foo, Bar > httpclient ) {}
}