Ninject - binding constructors with arguments / Entity Framework connection string

后端 未结 2 782
广开言路
广开言路 2021-02-18 16:56

Please forgive my ignorance, but I am very new to IOC and NinJect. I have searched for high and low for easily understandable solutions but so far they have eluded me.

S

2条回答
  •  南笙
    南笙 (楼主)
    2021-02-18 17:15

    Newer versions of Ninject allow to get rid of magic strings in the binding definition. Something like this:

    public class StandardModule : NinjectModule
    {
        public override void Load()
        {
            string connectionString = "...";
            Bind new MyEntityFrameWorkRepository(connectionString);
        }
    }
    

    For bindings involving generic types (e.g. bind ISomeService to SomeService and binding should be performed for all possible types at once), ToConstructor cannot be used (a new expression is required), so WithConstructorArgument remains the simplest approach. E.g.:

    Bind(typeof(ISomeService<>))
        .To(typeof(SomeService<>))
        .WithConstructorArgument("someParam", "someValue");
    

提交回复
热议问题