Используйте Inject DI by Constructor в Asp. Net (Ninject DI) - PullRequest
0 голосов
/ 18 июня 2020

хочет использовать инъекцию зависимостей Ninject в Asp. Net веб-приложении с помощью конструктора. Я добавил в свой код 3 ссылки: Ninject, Ninject.Web, Ninject.web.Common. Я могу ввести DI с помощью Get, Set Property, но не использую конструктор, но получаю ошибку.

    //Code in NinjectWebCommon.cs
    private static void RegisterServices(IKernel kernel)
    {

        kernel.Bind<IMessage>().To<Message>().InRequestScope();
    }     

    //Class code
    public class Message :IMessage
    {
    public string ShowMessage()
    {
        return "This Message from Message Class By ninject";
    }
    }

    public interface IMessage
    {
    string ShowMessage();
    }

    //code on WebForm
    public partial class FirstPage : System.Web.UI.Page
    {
    public IMessage Message;
    //[Inject]
    //public IMessage Message { get; set; }  //This is DI by Property is working
    [Inject]
    public FirstPage(IMessage message) 
    {
        Message = message;
    }

    protected void btnShowMsg_Click(object sender, EventArgs e)
    {
        lblMsg.Text = Message.ShowMessage();
    }
}

Ошибка при передаче значения параметра конструктора, но я думаю, что Ninject разрешит DI на runtime.am Я делаю здесь что-то не так, пожалуйста, помогите мне в решении этой проблемы, если у вас есть статья или ссылка, поделитесь со мной . заранее спасибо.

...