使用Ninject在构造函数中使用其他参数创建实例

我决定开始使用Ninject并遇到问题。说我有以下情况。我有一个IService接口和2个实现此接口的类。而且我还有一个类,该类具有获取IService和int的构造函数。如何使用Ninject创建此类的实例(我不想硬连接此int,我想在每次获得实例时都将其传递)?


这是一些说明情况的代码:


interface IService

{

    void Func();

}


class StandardService : IService

{

    public void Func()

    {

        Console.WriteLine("Standard");

    }

}


class AlternativeService : IService

{

    public void Func()

    {

        Console.WriteLine("Alternative");

    }

}



class MyClass

{

    public MyClass(IService service, int i)

    {

        this.service = service;

    }


    public void Func()

    {

        service.Func();

    }


    IService service = null;

}

class Program

{

    static void Main(string[] args)

    {

        IKernel kernel = new StandardKernel(new InlineModule(

            x => x.Bind<IService>().To<AlternativeService>(),

            x => x.Bind<MyClass>().ToSelf()));


        IService service = kernel.Get<IService>();


        MyClass m = kernel.Get<MyClass>();

        m.Func();

    }

}


qq_遁去的一_1
浏览 437回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP