It would be good to support IParameterInspector via Windsor.
So that we don't have to write a IOperationBehavior just to add the
IParameterInspector.
Eg.
public class AuditBehavior : IOperationBehavior
{
private readonly ILogger logger;
public AuditBehavior(ILogger logger)
{
this.logger = logger;
}
/// <inheritdoc/>
public void Validate(OperationDescription operationDescription)
{
}
/// <inheritdoc/>
public void ApplyDispatchBehavior(OperationDescription
operationDescription, DispatchOperation dispatchOperation)
{
dispatchOperation.ParameterInspectors.Add(new
AuditingInspector
(logger));
}
/// <inheritdoc/>
public void ApplyClientBehavior(OperationDescription
operationDescription, ClientOperation clientOperation)
{
}
/// <inheritdoc/>
public void AddBindingParameters(OperationDescription
operationDescription, BindingParameterCollection bindingParameters)
{
}
}
The class above only exists because there is no other way to register
IParameterInspectors.
On Sep 2, 1:34 am, Craig Neuwirt <[email protected]> wrote:
> Since you seem to be a user of the facility, are there any other things you
> would like changed or added?
>
> On Mon, Aug 31, 2009 at 6:56 PM, John Simons
> <[email protected]>wrote:
>
> > One more thing Craig,
>
> > On the client side the following test is failing : (Paste in
> > WcfClientFixture)
>
> > [Test, ExpectedException(typeof(EndpointNotFoundException))]
> > public void ThrowsEndPointNotFoundException()
> > {
> > Func<IWindsorContainer> createLocalContainer = () =>
> > new WindsorContainer()
> > .AddFacility<WcfFacility>(f => f.CloseTimeout =
> > TimeSpan.Zero)
> > .Register(
> > Component.For<Operations>()
> > .DependsOn(new { number = 42 })
> > .ActAs(new DefaultServiceModel().AddEndpoints(
> > WcfEndpoint.ForContract<IOperations>()
> > .BoundTo(new NetTcpBinding {
> > PortSharingEnabled = true })
> > .At("net.tcp://localhost/Operations1"))
> > )
> > );
>
> > windsorContainer.Register(
> > Component.For<IOperationsEx>()
> > .Named("operations")
> > .ActAs(new DefaultClientModel
> > {
> > Endpoint = WcfEndpoint
> > .BoundTo(new NetTcpBinding { PortSharingEnabled
> > = true })
> > .At("net.tcp://localhost/Operations2")
> > .AddExtensions(new ChannelReconnectPolicy())
> > })
> > );
>
> > IOperationsEx client;
>
> > using (createLocalContainer())
> > {
> > client =
> > windsorContainer.Resolve<IOperationsEx>("operations");
> > client.Backup(new Dictionary<string, object>());
> > }
> > }
>
> > The exception thrown is ComponentActivatorException but I think you should
> > instead throw the inner exception, so that the test passes.
> > What do you think ?
>
> > This way makes it more natural and simple for the consumer.
>
> > Cheers
> > John
>
> > ------------------------------
> > *From:* Craig Neuwirt <[email protected]>
> > *To:* [email protected]
> > *Sent:* Tuesday, 1 September, 2009 9:25:49 AM
> > *Subject:* Re: WcfFacility policies
>
> > sure
>
> > On Mon, Aug 31, 2009 at 6:18 PM, John Simons
> > <[email protected]>wrote:
>
> >> Craig,
>
> >> That's what I'm saying, I think you should use this as the default
> >> implementation of IChannelActionPolicy and if the user wants they can
> >> register another implementation with a lower ExecutionOrder so that
> >> gets executed before.
> >> What do you think?
>
> >> On Aug 31, 11:52 pm, Craig Neuwirt <[email protected]> wrote:
> >> > There are many ways to handle reconnection, so I didn't want to pick one
> >> by
> >> > default.
> >> > I could probably use it as a default if none are specified.
>
> >> > On Sat, Aug 29, 2009 at 9:39 PM, John Simons <
> >> [email protected]>wrote:
>
> >> > > I've noticed that the ChannelReconnectPolicy is not automatically
> >> > > added to the facility.
> >> > > Shouldn't this be an opt out instead ?
>
> >> > > I would think that 9/10 you want the facility to handle the
> >> > > CommunicationException automatically and recreate the channel.
>
> >> > > Cheers
> >> > > John
>
> > ------------------------------
> > Find local businesses and services in your area with Yahoo!7 Local. Get
> > started<http://au.rd.yahoo.com/search/local/mailtagline/*http://local.yahoo.c...>
> > .
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Castle Project Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/castle-project-users?hl=en
-~----------~----~----~----~------~----~------~--~---