cannot get interception working

May 11, 2009 at 11:16 AM
Edited May 11, 2009 at 11:30 AM

Hi, I am using Unity with WCF. My WCF services are instantiated using container. Other application layers are using unity too.

Consider following

 

 

WorkspaceRepositoryIWorkspaceRepository // DAL layer

FileBusinessService : IFileBusinessService // Business layer

FileService : IFileService // WCF Service

 

 

 <container>

        <extensions>

          <add type="Microsoft.Practices.Unity.InterceptionExtension.Interception, Microsoft.Practices.Unity.Interception, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

        </extensions>

        <extensionConfig>

          <add name="interception" type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationElement, Microsoft.Practices.Unity.Interception.Configuration, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">

            <interceptors>

              <interceptor type="interfaceInterceptor">

                <default type="IFileBusinessService" />

              </interceptor>

            </interceptors>

            <policies>

              <policy name="LoggingPolicy">

                <matchingRules>

                  <matchingRule name="BusinessLayerMatchingRule" type="assemblyMatchingRule">

                    <injection>

                      <constructor>

                        <param name="assemblyName" parameterType="System.String">

                          <value value="Logos.DataBox.BusinessLogic" type="System.String"/>

                        </param>

                      </constructor>

                    </injection>

                  </matchingRule>

                  <matchingRule name="DomainMatchingRule" type="assemblyMatchingRule">

                    <injection>

                      <constructor>

                        <param name="assemblyName" parameterType="System.String">

                          <value value="Logos.DataBox.Domain" type="System.String"/>

                        </param>

                      </constructor>

                    </injection>

                  </matchingRule>

                  <matchingRule name="DataAccessLayerMatchingRule" type="assemblyMatchingRule">

                    <injection>

                      <constructor>

                        <param name="assemblyName" parameterType="System.String">

                          <value value="Logos.DataBox.Dal" type="System.String"/>

                        </param>

                      </constructor>

                    </injection>

                  </matchingRule>

                </matchingRules>

                <callHandlers>

                  <callHandler type="CommonLogingCallHandler" name="LogHandler"/>

                </callHandlers>

              </policy>

            </policies>

          </add>

        </extensionConfig>

I cannot get unity to call my call handler using this configuration. If anyone could help, it would be appreciated.

Regards

Peter