ninject相关内容
我正在使用Ninject从内核中检索我的DataContext,我想知道Ninject是否自动释放DataContext,或者他如何处理dispose()行为.根据我自己的经验,我知道处理数据上下文非常重要,并且每当您创建DataContext的直接对象(如new DataContext())时,都应该使用using()块. 因此,我的问题是:从内核中检索我的DataContext时,是否还
..
我将在经验不足的开发人员的项目中使用它,因此不能选择诸如Spring.NET之类的复杂框架.我在想: 注入 温莎城堡 StructureMap 哪个会呈现出适度的学习曲线而又不会失去灵活性? 和另一个问题-放置配置的正确位置在哪里?由于3层ASP.NET应用程序上的内核/配置(不是MVC !!!,所有示例都使用MVC :)) 解决方案 正确使用DI的好处在于,您可以将
..
我正在使用DI和IoC开发可扩展框架.用户必须能够通过将自己的实现拖放到容器中来覆盖框架中的现有功能. 如何允许用户执行此操作而不要求他们知道我使用的是哪个IoC容器? 我当前的中途解决方案是按如下方式构造程序集: 1)定义仅包含接口的抽象程序集. 2)定义实现这些接口的具体程序集.用户可以定义自己的功能来覆盖现有功能. 3)在单独的程序集中定义容器绑定;即每个混凝土
..
Kernel.Get()线程安全吗?我的目标是在我所有的componenet中共享我的内核实例,并且它们可以很好地同时在不同线程上调用Kernel.Get(). Kernel.Get()线程安全吗? 在位于不同dll中的所有应用程序组件之间共享应用程序内核的最佳模式是什么?如果可以的话,我不希望将工厂实例传递给应用程序的每个组件. 解决方案 获取是线程安全的,但是创建新的内核实
..
我正在更新我的项目以使用AutoMapper 4.2,并且遇到了重大更改.尽管我似乎已经解决了上述更改,但我并不完全相信我已经以最适当的方式做到了. 在旧代码中,我有一个NinjectConfiguration和一个AutoMapperConfiguration类,它们分别由WebActivator加载.在新版本中,AutoMapperConfiguration退出,而我直接在发生绑定的Ni
..
我正在Visual Studio 2017 15.4版上开发MVC5项目.我在这里得到了前所未有的结果,这是我从未遇到过的.我已经从nuget安装了Ninject.MVC5软件包.它安装得很好,没有发出任何错误或警告.但是问题是它没有在App_Start文件夹中生成NinjectWebCommon.cs文件.有什么理由吗? 解决方案 经过大量的搜索和测试,我得到了确切的解决方案,在系统尝试
..
如何使Ninject在运行时基于变量实例化对象? 我试图根据来自用户输入的参数在“控制器"操作-MVC 3中注入正确的存储库.如果用户输入"BMW",它将把ICarRepository绑定到BMWRepository,并且如果他输入"KIA",则将注入KiaRepository. [HttpPost] public ActionResult SearchResult(FormColle
..
我正在使用NInject来解决我的第一个WPF应用程序的依赖关系. 以下是我的代码段. 我的App.xaml.cs就像这样. public partial class App : Application { private IKernel container; protected override void OnStartup(StartupEventArgs e)
..
如果您从NInject请求一个未绑定的对象,则默认行为是(如果有合适的构造函数可用)似乎是为该合适的对象创建实例. 我想禁用此行为(我很难调试问题,因为某些东西是自动绑定的,而不是在模块中获取我的自定义绑定). 这个问题暗示可能,但是我无法从NInject Wiki找到答案. 解决方案 创建后从内核组件中删除SelfBindingResolver: kernel.Compone
..
我刚刚将ASP.NET Identity Entity Framework程序包从1.0升级到了2.0,现在Ninject绑定之一已损坏: kernel.Bind>().To>(); kernel.Bind>().ToSelf(); kernel.Bind
..
我正在创建一个微型C#应用程序,该应用程序当前由一个核心程序集和一个winforms程序集组成.我意识到我可能真的不需要Ninject这样的小东西,但是我想尝试一下. 无论如何,要与Ninject一起工作,我已经了解到您将编写一组模块,返回maps类,依此类推.之后,您将创建IKernel的实例并将模块加载到其中. 但是,我应该将那些模块保存在哪里?那我应该把内核保存在哪里呢?东西去哪
..
我有一个类(MyFacade),我用Ninject注入了参数: class MyFacade { IDemoInterface demo; public MyFacade(IDemoInterface demo) { this.demo = demo; } public void MyMethod() { C
..
我当前正在使用以下代码: public class MyProvider { public MyProvider() { } public void Fetch() { using (PopClient popClient = new PopClient()) { .... }
..
我正在使用所附图片解释我的意思. 我有一些由NInject管理的类.其中一些具有一些单例实例,而另一些处于瞬态范围内.在图像中,蓝色矩形为singltons,红色为瞬态.处理器依赖于其他类或实例. 我想每次通过使用kernel.Get获取Processor的实例.但是,每次我想对处理器使用的对象使用不同的值.请参阅图像中的Action1和Action2.该代码不是真实的,仅用于解释.
..
我正在将Ninject 2.0用于.Net 3.5框架.我在单例装订上遇到困难. 我有一个实现IInputReader的类UserInputReader.我只希望创建此类的一个实例. public class MasterEngineModule : NinjectModule { public override void Load() {
..
在我的asp.net mvc应用程序中,我使用Ninject作为DI框架. 我的控制器使用我的HttpAccountService从cookie中获取信息. 为此,我需要HttpAccountService中的HttpContext.Current. 因为这是一个依赖关系,所以我将它通过构造函数注入了它: kernel.Bind() .To
..
我经常阅读 IOC中的服务定位符是反模式. 去年,我们在工作中引入了IOC(专门用于Ninject).该应用程序是旧版,非常大,而且分散.创建一个类或一系列类的方法有很多.有些是由Web框架(自定义)创建的,有些是由nHibernate创建的.很多东西都散布在怪异的地方. 我们将如何处理不同的情况,而不会提出至少ServiceLocatorish的东西,并且最终不会在不同的地方使用不同
..
想象一下我有以下类和接口: public interface IService { } public class DefaultService : IService { } public class FooService : IService { } public class BarService : IService { } 然后,我希望能够
..
我正在尝试在此处做一些平衡.当前,Azure WebJobs不支持.NET Core. 在一些帮助下,我创建了一个.NET Core控制台应用程序,并将其用作WebJob.最重要的是,我正在尝试实现Ninject for DI. 代码可以很好地编译,但是当我运行它时,我得到的是“没有为此对象定义无参数构造函数."错误-参见下文. 我可能在这里使用Azure WebJobs,.NE
..
我使用Log4net进行日志记录,并且我有很多具有ILog依赖项的对象.这些依赖项与其他依赖项一样被注入.我想遵循Log4net记录器的命名约定,以便以实例的类型命名注入到实例的记录器.我一直在为ILog使用以下绑定: Bind().ToMethod(ctx => LogManager.GetLogger(ctx.Request.ParentRequest == null
..