c# - Ninject - 在 .Net MVC 3 中有条件地创建类

标签 c# asp.net-mvc-3 ninject

我觉得我在这里遗漏了一些明显的东西。我正在尝试使用 ninject 创建一个类。该类接受单个字符串参数,该参数存储在 HttpContext 的 Session 中。如何将该参数传递给此类?

该类看起来像:

public class Manager : IManager
{
    public Manager(string a) { ... }
}

我有一个自定义依赖关系解析器,如下所示:

public class NinjectDependencyResolver : IDependencyResolver
{
    IKernel kernel;
    public NinjectDependencyResolver()
    {
        kernel = new StandardKernel();
        Bind<IManager>().To<Manager>()
    }

    ...
}

典型的 Controller 如下所示:

public class ManagerController : Controller
{
    public ManagerController(IManager manager) { ... }
}

最佳答案

参数存储在Session中是相关的实现细节,不属于Ninject配置。

您应该创建一个 IManagerConfiguration 接口(interface),该接口(interface)具有管理器的每个配置值的属性以及该接口(interface)的 session 存储实现。现在您可以为它们添加一个简单的绑定(bind),并将接口(interface)传递给管理器构造函数而不是字符串。

关于c# - Ninject - 在 .Net MVC 3 中有条件地创建类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11681254/

相关文章:

c# - 将 C# 变量用于 cmd 字符串

c# - C#中如何直接执行SQL查询?

asp.net-mvc - 使用 (Html.ValidationMessage) 对 mvc 中的下拉列表进行简单验证

asp.net-mvc - 使用 Nuget 更新 FluentValidation 后 NinjectValidatorFactory 出现错误

c# - 有签名识别的代码或算法吗?

C# 将类型传递给要在 "is"语句中评估的方法?

asp.net-mvc - 如何在 MVC3 的局部 View 中渲染一个部分?

asp.net - 仅具有所需参数的自定义 MembershipUser

asp.net-mvc - WebActivator 有什么作用?

asp.net-mvc - 我可以使用 Ninject 将依赖项注入(inject)属性而不是使用服务定位器模式吗?