使用 WCF 集成工具的 WCF 代理的 Castle Windsor XML 配置

发布于 2024-08-30 11:44:01 字数 420 浏览 10 评论 0原文

目前,我们使用 WCF 集成工具在 Windsor 容器中使用 WCF 代理的编程注册。例如:

container.Register(
    Component.For<CalculatorSoap>()
      .Named("calculatorSoap")
      .LifeStyle.Transient
      .ActAs(new DefaultClientModel
      {
        Endpoint = WcfEndpoint.FromConfiguration("CalculatorSoap").LogMessages()
      }
      )
      );

有没有办法通过 Windsor XML 配置文件执行相同的操作。我在谷歌上找不到任何这样的样本。

提前致谢

Currently, we use programming registration of WCF proxies in Windsor container using WCF Integration Facility. For example:

container.Register(
    Component.For<CalculatorSoap>()
      .Named("calculatorSoap")
      .LifeStyle.Transient
      .ActAs(new DefaultClientModel
      {
        Endpoint = WcfEndpoint.FromConfiguration("CalculatorSoap").LogMessages()
      }
      )
      );

Is there any way to do the same via Windsor XML configuration file. I can't find any sample of this on google.

Thanks in advance

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

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

发布评论

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

评论(2

冬天旳寂寞 2024-09-06 11:44:01

Castle WCF 集成设施存储库 (http://github.com/castleproject/Castle.Facilities.Wcf< /a>) 现在包含来自 Windsor 配置文件的 WCF 客户端注册示例:

<?xml version='1.0' encoding='utf-8' ?>
<configuration>
<facilities>
    <facility id='wcf' 
              type='Castle.Facilities.WcfIntegration.WcfFacility,
                    Castle.Facilities.WcfIntegration' />
</facilities>

<components>
    <component id='calculatorSoap'
               type='Demo.CalculatorSoap, Demo.UnitTests'
               wcfEndpointConfiguration='CalculatorSoap'>
    </component>
</components>
</configuration>

这就是我正在寻找的内容。
感谢您的帮助。

注意:注意生活方式。在常见情况下,WCF 代理必须具有短暂的生活方式,以便在对象释放时关闭。虽然默认的 Windsor 生活方式是单例,但在这种情况下,WCF 代理将在容器处置时关闭。

问候,安德烈

Castle WCF Integration Facility repository (http://github.com/castleproject/Castle.Facilities.Wcf) now contains sample of WCF client registration from Windsor configuration file:

<?xml version='1.0' encoding='utf-8' ?>
<configuration>
<facilities>
    <facility id='wcf' 
              type='Castle.Facilities.WcfIntegration.WcfFacility,
                    Castle.Facilities.WcfIntegration' />
</facilities>

<components>
    <component id='calculatorSoap'
               type='Demo.CalculatorSoap, Demo.UnitTests'
               wcfEndpointConfiguration='CalculatorSoap'>
    </component>
</components>
</configuration>

That is what I was looking for.
Thank you for your help.

Note: pay attention on lifestyle. In common case, WCF proxy must have transient lifestyle to be closed on object release. While default Windsor lifestyle is singleton, in this case WCF proxy will be closed on container disposal.

Regards, Andrej

世界和平 2024-09-06 11:44:01

推荐使用 IWindsorInstaller 并通过代码进行注册。 Config 用于配置(和遗留场景)。

我将为此创建两个安装程序,并根据编译标志使用其中之一;

var installer = 
#if DEBUG
new TestingServiceInstaller();
#elseif
new ProductionServiceInstaller();
#endif

container.Install(installer);

Using IWindsorInstaller and doing the registration through code is the recommended way. Config is for configuration (and legacy scenarios).

I'd create two installers for this and based on compilation flag use one or the other;

var installer = 
#if DEBUG
new TestingServiceInstaller();
#elseif
new ProductionServiceInstaller();
#endif

container.Install(installer);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文