在开箱即用的WCF中,可以通过app.config或代码(使用行为配置)单独限制您的服务。我无法想象我们如何在Castle中做到这一点。
在Castle中,我知道如何使用以下代码限制容器中的所有服务:
var throttle = new ServiceThrottlingBehavior() { MaxConcurrentCalls = 2 };
container.Register(Component.For<IServiceBehavior>().Instance(throttle));
此代码的问题是它适用于容器中注册的所有服务。
如果在温莎城堡中,我可以根据个人情况限制每项服务吗?
答案 0 :(得分:2)
由于每次将此行为连接到服务时都会调用ApplyDispatchBehavior()
方法,因此您可以在此事件中编写代码以检查服务对象并有条件地应用该行为。因此,它会为每个服务调用此方法,但不会对您不希望应用此行为的服务执行任何操作。
除此之外,我还没有找到另一种方式。