Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>To determine the actual order that the code executes in I would recommend turning on Tracing for WCF and look over the generated trace logs. This can be enabled by adding this to the config file:</p> <pre><code>&lt;configuration&gt; &lt;system.diagnostics&gt; &lt;sources&gt; &lt;source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true"&gt; &lt;listeners&gt; &lt;add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData= "c:\log\Traces.svclog" /&gt; &lt;/listeners&gt; &lt;/source&gt; &lt;/sources&gt; &lt;/system.diagnostics&gt; &lt;/configuration&gt; </code></pre> <p>As far as the extensibility points in WCF, Carlos Figueira (one of the engineers of WCF at Microsoft) has a post detailing almost all of the extensibility points in WCF ( <a href="http://blogs.msdn.com/b/carlosfigueira/archive/2011/03/14/wcf-extensibility.aspx" rel="noreferrer">http://blogs.msdn.com/b/carlosfigueira/archive/2011/03/14/wcf-extensibility.aspx</a> ). </p> <p>In the WCF Runtime section of this post the ordering is listed as such:</p> <pre><code>1.2. WCF Runtime 1.2.1. Message interception 1.2.1.1. I[Client/Dispatch]MessageInspector 1.2.1.2. IParameterInspector 1.2.2. Mapping between message and operation parameter 1.2.2.1. I[Client/Dispatch]MessageFormatter 1.2.3. Mapping between message and CLR operations 1.2.3.1. I[Client/Dispatch]OperationSelector 1.2.3.2. IOperationInvoker 1.2.4. Instance creation 1.2.4.1. IInstanceProvider 1.2.4.2. IInstanceContextProvider 1.2.5. Error handling 1.2.5.1. IErrorHandler 1.2.6. Others 1.2.6.1. ICallContextInitializer 1.2.6.2. IChannelInitializer 1.2.6.3. IInteractiveChannelInitializer </code></pre> <p>I think between the two the order of operations in WCF should become clear.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload