首页 > 解决方案 > 在父类中调用带参数的类构造函数

问题描述

如您所见,我有这门课:

   public class mybaseclass
    {
        public string token = "";
        private readonly HttpContextAccessor iHTTP;

        public mybaseclass([FromServices]HttpContextAccessor IHTTP)
        {
            //this.httpContext = httpContext;
            iHTTP = IHTTP;
        }
        public mybaseclass()
        {
           
        }
        
      
        protected Task<HttpRequestMessage> CreateHttpRequestMessageAsync(CancellationToken cancellationToken)
        {
           // var t = null;
            try
            {
               // iHTTP.HttpContext.Request.Cookies[key]
               var t = iHTTP.HttpContext.Request.Cookies["Authorization"];
                if (t == null)
                {
                    token = t;
                }
            }
            catch(Exception aaa)
            {

            }
            
                var msg = new HttpRequestMessage();
            // SET THE BEARER AUTH TOKEN
            msg.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
            return Task.FromResult(msg);
        }
    }

这个类在这个类中被调用:

public partial class Default1Client : mybaseclass, IDefault1Client
    {
        private string _baseUrl = "";
        private System.Lazy<Newtonsoft.Json.JsonSerializerSettings> _settings;

        public Default1Client(string baseUrl)
        {
            BaseUrl = baseUrl;
            _settings = new System.Lazy<Newtonsoft.Json.JsonSerializerSettings>(CreateSerializerSettings);
        }
// other part of code 
}

我的问题是当我调用 Default1Client 时,该类调用了没有任何参数的 mybaseclass 构造函数,但我需要httpcontextaccessor调用构造函数

标签: c#.netclassconstructor

解决方案


修改您的构造函数以通过它:

public Default1Client(string baseUrl, HttpContextAccessor contextAccessor) : base(contextAccessor)
{
    //etc....

并在您注册时填充它:

services.AddScoped<IDefault1Client>(provider => { return new Default1Client
(
    "localhost:44381", 
    provider.GetService(typeof(HttpContextAccessor)) as HttpContextAccesor
)}); 

推荐阅读