Hi,
first of all I got the feedback that "Castle" is the wrong naming... so for clarification: with Castle the whole technology-stack of http://www.castleproject.org/ is meant including (especially) DynamicProxy and Windsor.
Further research brought me to the follow up question whether it is possible to implement a service with a non-empty (standard) constructor. Yes, this is also possible ( stackoverflow.com ). You simply need to:
I am looking forward to test that approach with "RouteTable.Routes.Add(new ServiceRoute(...))".
kr, d
first of all I got the feedback that "Castle" is the wrong naming... so for clarification: with Castle the whole technology-stack of http://www.castleproject.org/ is meant including (especially) DynamicProxy and Windsor.
Further research brought me to the follow up question whether it is possible to implement a service with a non-empty (standard) constructor. Yes, this is also possible ( stackoverflow.com ). You simply need to:
- create a Custom-ServiceHostFactory (base class: ServiceHostFactory) and
- override CreateServiceHost which should create a Custom-ServiceHost.
- Each implemented service contract (loop over this.ImplementedContracts.Values) should get a Custom-Behavior (interfaces: IContractBehavior and IInstanceProvider) added.
- In the instance provider happens the magic of creating a service with new (override the two GetInstance-methods).
You can easily generalize this approach, and in fact some DI Containers have already done this for you (cue: Windsor's WCF Facility).A tutorial how to use the WCF facility can be found here and here. A walk-through "DI in WCF in 5min" can be found here (this article shows perfectly that DefaultServiceHostFactory enables you to create services with the full power of DI).
I am looking forward to test that approach with "RouteTable.Routes.Add(new ServiceRoute(...))".
kr, d
No comments:
Post a Comment