Giter Club home page Giter Club logo

blog.netcore's People

Contributors

leo0216 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

tang-live htlp

blog.netcore's Issues

源码中,看见使用HttpClient,会造成一些问题

using (HttpClient client = new HttpClient())

不要自己new HttpClient,应该让HttpClientFactory管理生命周期和实例化。
因为使用using var httpClient = new HttpClient(),即使对象释放了,底层的连接池也不会立即释放。
微软推荐做法:

public interface  InterfaceType
{

}
public class ImplmentType
{
    private readonly HttpClient _httpClient;
    default ctor(HttpClient httpClient)
    {
        _httpClient = httpClient;
    }
}
// 指定类型
service.AddHttpClient<InterfaceType,ImplmentType>(httpOption => {});

// 指定名称
service.AddHttpClient(name:"HttpClientName",httpOption => {});

// 基本用法
service.AddHttpClient(httpOption => {});

// 依赖注入
public class DemoController : Controller
{
    //指定类型
    ctor(InterfaceType type)

    //指定名称
    private readonly IHttpClientFactory _httpClientFactory;
    ctor(IHttpClientFactory httpClientFactory)
    {
        _httpClientFactory = httpClientFactory;
    }

    public IActionResult DemoAction()
    {
        var httpClient = _httpClientFactory.CreateClient("HttpClientName");
        // todo ...
    }

    //基本用法
    private readonly IHttpClientFactory _httpClientFactory;
    ctor(IHttpClientFactory httpClientFactory)
    {
        _httpClientFactory = httpClientFactory;
    }

    public IActionResult DemoAction()
    {
        var httpClient = _httpClientFactory.CreateClient();
        // todo ...
    }
}

相关文档

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.