1

従来のasp.netプロジェクトを変更しています。一部の名前空間、クラス、メソッドに透過的なロギングを含めたい。

EntLibを使用しています。アプリを透過的にログに記録するようにポリスインジェクション設定を構成できますか?指定された名前空間のすべてのメソッドをログに記録するにはどうすればよいですか?

それは私のweb.configの一部です。

<policyInjection>
<policies>
  <add name="Policy">
    <matchingRules>
      <add type="Microsoft.Practices.EnterpriseLibrary.PolicyInjection.MatchingRules.NamespaceMatchingRule, Microsoft.Practices.EnterpriseLibrary.PolicyInjection, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        name="Namespace Matching Rule">
        <matches>
          <add match="MyNamespace.*" ignoreCase="true" />
        </matches>
      </add>
    </matchingRules>
    <handlers>
      <add type="Microsoft.Practices.EnterpriseLibrary.Logging.PolicyInjection.LogCallHandler, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        beforeMessage="+++AOP " afterMessage=" AOP+++" name="Logging Call Handler">
        <categories>
          <add name="General" />
        </categories>
      </add>
    </handlers>
  </add>
</policies>

4

1 に答える 1

0

Unity を使用して MyNamespace にクラスを作成および注入していますか? その場合は、マッピング セクションに要素を追加してみてください。

<type type="IMyService" mapTo="MyService">
    <lifetime type="singleton"/>
    <interceptor type="InterfaceInterceptor"/>
    <policyInjection/>
</type>

この sectionExtension 登録も追加する必要があります。

<sectionExtension type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension, Microsoft.Practices.Unity.Interception.Configuration"/>
于 2011-11-22T18:21:08.957 に答える