Skip to content

ninjaferret/NinjaFerret.Wcf

Repository files navigation

h1. NinjaFerret.Wcf

This is a system for automatically generating an "invisible" proxy 
client for a WCF service. The aim is that the client factory will 
generate something that looks exactly like the service, that the 
service and the client are interchangeable and that the client will
not need to know (barring configuration) about whether it is using
the service in-line or as a WCf service.

h2. NinjaFerret.Wcf.Client

This is the actual client factory that will generate a client at 
runtime for you. The sample application contains examples of the 
Castle Windsor configuration to call into the factory.

Simply put even within your own code you can create a factory for
each type of interface and call:

clientFactory.GenerateClient();

If you wish to use two different endpoints for a single interface then
use:

clientFactory.GenerateClient(endpointName);

This will generate you a distinct proxy client using the given endpoint
name that is specified in the config file. 

h2. NinjaFerret.Wcf.Exeption

This is a small assembly used to support you when using the ClientFactory
to translate exceptions across the WCF interface boundary. 

Any exception that you wish to throw across the boundary should be defined
on the service contract using a fault that inherits from:

NinjaFerret.Wcf.Exception.TranslatableFault

This fault should have an equivalent exception that implements:

NinjaFerret.Wcf.Exception.ITranslatableException

The client that is generated by the ClientFactory will intercept any
TranslatableFaults and convert them back into the exceptions that were
originally thrown.

In the sample application describes my idea situation, the actual service
that does the work is maintained in an assembly separate from the service host.
When hosting the service in WCF create a wrapper class that translates these
exceptions into faults... the client never needs to change.

About

Frameworks for the .NET WCF Framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages