Ninject 使用 WCF Web API Preview 5

2023-11-24

有人能为我指出正确的方向,让 Ninject 与 WCF Web API Preview 5 一起使用吗?我已在我的 ASP.NET MVC 3 项目以及使用 Ninject.Extensions.Wcf 库的另一个内部 WCF 服务中成功启动并运行它。但是,在创建新的 MVC 3 项目并从 NuGet 获取 WebApi.All 库时,我无法让它工作。

我看过这个 stackoverflow 帖子使用新的 WCF Web API 设置 Ninject但无法让它工作,我相信这可能与最新版本中的一些更改有关。

我也不确定除了主要库之外还应该参考哪些 Ninject 库。我使用 Ninject.MVC3 、 Ninject.Extensions.Wcf 吗?

对此的任何帮助将不胜感激。

****更新**

我正在使用的代码来自上述问题的答案。我在它自己的类文件中有这个。

   public class NinjectResourceFactory : IResourceFactory
    {
        private readonly IKernel _kernel;

        public NinjectResourceFactory(IKernel kernel)
        {
            _kernel = kernel;
        }

        public object GetInstance(Type serviceType, InstanceContext instanceContext, HttpRequestMessage request)
        {
            return _kernel.Get(serviceType);
        }

        public void ReleaseInstance(InstanceContext instanceContext, object service)
        {
            // no op
        }
    }

我的 global.asax 中有这个:

var configuration = HttpConfiguration.Create().SetResourceFactory(new NinjectResourceFactory());
RouteTable.Routes.MapServiceRoute<myResource>("resource", configuration);

我遇到的问题是 IResourceFactory 接口无法识别,并且 HttpConfiguration.Create() 不再存在,因此我需要以其他方式设置 SetResourceFactory,我尝试使用 HttpConfiguration().CreateInstance 方法进行设置,但没有喜悦。


以下是我使用 Ninject 和 WebApi 的代码,它可以工作。 创建一个继承自WebApiConfiguration的类

public class NinjectWebApiConfiguration : WebApiConfiguration {
    private IKernel kernel = new StandardKernel();

    public NinjectWebApiConfiguration() {
        AddBindings();
        CreateInstance = (serviceType, context, request) => kernel.Get(serviceType);
    }

    private void AddBindings() {
        kernel.Bind<IProductRepository>().To<MockProductRepository>();
    }

}

并在 RegisterRoutes 中使用 NinjectWebApiConfiguration

public static void RegisterRoutes(RouteCollection routes) {

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    var config = new NinjectWebApiConfiguration() { 
        EnableTestClient = true
    };

    routes.MapServiceRoute<ContactsApi>("api/contacts", config);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ninject 使用 WCF Web API Preview 5 的相关文章

  • 用基本控制器进行 Ninject?

    我想知道当你有一个基本控制器时 如何使用 ninject 2 0 进行构造函数注入 I have private readonly IBaseService baseService public BaseController IBaseSe
  • 如何在 Ninject 中使用 Provider

    我有以下代码 public class Something Inject public Configuration config get set singleton Inject public Provider
  • 集合的延迟加载 - 如何获取项目?

    我有一个简单的类 旨在成为一个简单的 POCO 它只保存数据 但有一个例外 它包含一组笔记 我想延迟加载这个集合 这样我就不必获取不需要它们的页面上的注释 其存根是这样的 public class MyDTOClass private IC
  • 存储库上的 Ninject WCF 垃圾收集

    我正在使用带有 WCF 扩展的 Ninject 2 2 在我的大多数服务中 存储库都会快速实例化 发布 但是 我的一项服务执行长时间运行的操作 2 3 分钟 如果我观察 w3wp 进程 我可以看到使用 SQL 建立的 TCP IP 连接 并
  • ASP.NET MVC + Ninject:InRequestScope

    我想使用 ninject InRequestScope 创建 PerRequestResourceProvider 的实例 public class PerRequestResourceProvider IPerRequestResourc
  • 依赖注入和开发效率

    Abstract 在过去的几个月里 我一直在编写一个轻量级 基于 C 的游戏引擎 具有 API 抽象和实体 组件 脚本系统 它的整体理念是通过提供类似于 Unity 引擎的架构来简化 XNA SlimDX 等游戏开发过程 设计挑战 正如大多
  • 如何在 WebApi OwinHost 启动中使用 Ninject 引导程序?

    我正在从 IIS WebAPI 迁移到 OwinHost 利用 nuget 软件包的最新预发布版本 我成功地使用了此处的说明 https github com ninject Ninject Web Common wiki Setting
  • 让 Ninject 管理我的交易状态,实践关注点

    我让 Ninject 管理我的ISession and ITransaction使用以下注册方法在 Fluent nHibnerate 中进行状态 我想知道它是否足以控制事务 或者我是否需要将其放在其他地方 想法是 每个ISession根据
  • 如何配置Automapper注入Ninject 2.0?

    Structure Map 和 Windsor 有配置示例 http www cprieto com index php 2009 08 20 using automapper with castle windsor http www cp
  • TopShelf、Ninject 和 EF 代码优先的 Ninject 范围问题

    我目前正在使用 TopShelf 和 Ninject 来创建 Windows 服务 我有以下代码来使用 TopShelf 设置 Windows 服务 static void Main string args using IKernel ke
  • WCF、异步和上下文混乱

    Well I was打算命名这个以及背景问题 但显然这个词question标题中不允许使用 无论如何 这是问题 我使用IErrorHandler在我的 WCF 服务中 以便提供日志记录而不弄乱我的所有服务代码 到目前为止 这种方法效果很好
  • 多步骤数据库事务拆分为多个 HTTP 请求

    我过去曾将 TransactionScope 与桌面客户端应用程序一起使用来回滚不完整的多步骤事务 这种方法似乎不太可能在 Web 应用程序中起作用 任何人都可以建议如何在整个过程未完成时确保回滚跨多个页面的多个步骤吗 例如 他们的浏览器崩
  • Ninject InRequestScope 缺失

    有几个关于 ninject 最新版本 2 2 1 4 的问题 正在尝试绑定 Linq2sqlDataContext到具体实施InRequestScope 在类库项目中 Bind
  • ASP.NET 5 / MVC 6 中基于约定的绑定

    可以手动注册依赖项 services AddTransient
  • 我正在寻找一个简单但实​​用且强大的 .net IOC/DI 框架

    我将在一个由经验较少的开发人员组成的项目中使用它 因此像 Spring NET 这样的复杂框架不是一个选择 我在想 Ninject 温莎城堡 结构图 哪个会提供适度的学习曲线而不失去灵活性 另一个问题 放置配置的正确位置在哪里 由于 3 层
  • 如何将对象注入到 WCF 验证器类中

    跟进使用依赖注入世界碳基金服务 https stackoverflow com questions 881705 how to inject an object into a wcf service 有没有办法将 DI 用于 WCF验证者
  • MVC 中带有 Ninject 的适当存储库生命周期范围

    在 MVC 3 应用程序中将 Entity Framework 4 与 Ninject 结合使用时 存储库和 EF 上下文的适当生命周期范围是什么 我一直在使用默认的 InTransientScope 但质疑是否应该使用 InRequest
  • ASP.NET MVC 5 中的 Actionfilter 注入

    我有一个简单的过滤器 public class IsAdmin ActionFilterAttribute IAuthenticationFilter private string roleName IBusinessIdentity id
  • 在Application_Start中访问ninject内核

    我正在使用 Ninject 和随 nuget 安装的 MVC3 扩展 我的内核设置代码位于 App Start NinjectMVC3 cs 文件中 控制器中的一切都运行良好 但我无法弄清楚如何 正确 绑定 Global asax cs M
  • 使用并非为 IOC 设计的遗留应用程序避免服务定位器反模式

    我经常读到IOC 中的服务定位器是一种反模式 http blog ploeh dk 2010 02 03 ServiceLocatorIsAnAntiPattern aspx 去年 我们在工作中的应用程序中引入了 IOC 具体来说是 Nin

随机推荐