如何在 ASP.NET MVC 3 解决方案中将 NServiceBus 与 NServiceBus.Ninject-CI 结合使用的示例

发布于 2024-12-21 10:13:14 字数 268 浏览 1 评论 0原文

我想使用 ASP.NET MVC 3 来试验 NServiceBus。我有一个安装了 NServiceBus 以及 NinjectMVC3 和 NServiceBus.Ninject-CI 的解决方案。问题是,我不知道如何在 App_Start 的 NinjectMVC3.cs 文件中设置 NServiceBus 内容。

相当烦人的是,我无法找到任何有关如何使用 NServiceBus.Ninject-CI 的示例(我讨厌人们不费心给出如何使用他们的东西的示例)。

有人可以帮我开始吗?

I would like to experiment with NServiceBus using ASP.NET MVC 3. I've got a solution with NServiceBus installed, plus NinjectMVC3 and NServiceBus.Ninject-CI. Trouble is, I have no idea how to setup NServiceBus stuff in the NinjectMVC3.cs file in App_Start.

Rather annoyingly I'm having trouble finding any examples of how to use NServiceBus.Ninject-CI (I hate it when people don't bother giving examples of how to use their stuff).

Can someone help me get started please?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

娇女薄笑 2024-12-28 10:13:14

将这样的模块加载到内核中以提供对总线的访问

public class NServiceBusModule : NinjectModule
{
    public override void Load()
    {
        this.Bind<IBus>().ToConstant(this.CreateBus()).InSingletonScope();
    }

    private IBus CreateBus()
    {
        return NServiceBus.Configure.WithWeb()
            .NinjectBuilder(this.Kernel)

            ... // put NServiceBus config here 

            .CreateBus()
            .Start();
    }
}

阅读 NServiceBus 文档了解如何配置 NServiveBus:

http://docs.pspecial.net/samples/web/asp-mvc -应用程序/

Load a module like this into the kernel to provide access to the bus

public class NServiceBusModule : NinjectModule
{
    public override void Load()
    {
        this.Bind<IBus>().ToConstant(this.CreateBus()).InSingletonScope();
    }

    private IBus CreateBus()
    {
        return NServiceBus.Configure.WithWeb()
            .NinjectBuilder(this.Kernel)

            ... // put NServiceBus config here 

            .CreateBus()
            .Start();
    }
}

Read the NServiceBus documentation about how to configure NServiveBus:
http://docs.particular.net/nservicebus/containers/ninject
http://docs.particular.net/samples/web/asp-mvc-application/

花开柳相依 2024-12-28 10:13:14

希望这会对某人有所帮助。我在寻找让 ninject 在 NServiceBus 中工作的示例代码时遇到了很多麻烦。

下面的代码对我来说可以代替更常见的 Castle 版本:

public class EndpointConfig : IConfigureThisEndpoint, AsA_Publisher, IWantCustomInitialization
{
    #region IWantCustomInitialization Members

    public void Init()
    {
        Configure
            .With()
            .NinjectBuilder(CreateKernel())
            .XmlSerializer()
            .MsmqTransport();

        SetLoggingLibrary.Log4Net(XmlConfigurator.Configure);
    }

    protected IKernel CreateKernel()
    {
        var kernel = new StandardKernel();

        kernel.Load<MyCustomNinjectModule>();

        return kernel;
    }

    #endregion
}

ninject 模块是常用格式,即:

public class MyCustomNinjectModule : NinjectModule
{
    public override void Load()
    {
        Bind(typeof(ILogger<>)).To(typeof(Log4NetLogger<>));  
        ...
    }
}

Hopefully this will help someone. I had a lot of trouble finding sample code for getting ninject working within NServiceBus.

This code below works for me in place of the more common Castle version:

public class EndpointConfig : IConfigureThisEndpoint, AsA_Publisher, IWantCustomInitialization
{
    #region IWantCustomInitialization Members

    public void Init()
    {
        Configure
            .With()
            .NinjectBuilder(CreateKernel())
            .XmlSerializer()
            .MsmqTransport();

        SetLoggingLibrary.Log4Net(XmlConfigurator.Configure);
    }

    protected IKernel CreateKernel()
    {
        var kernel = new StandardKernel();

        kernel.Load<MyCustomNinjectModule>();

        return kernel;
    }

    #endregion
}

with the ninject module being the usual format, ie:

public class MyCustomNinjectModule : NinjectModule
{
    public override void Load()
    {
        Bind(typeof(ILogger<>)).To(typeof(Log4NetLogger<>));  
        ...
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文