当前位置:编程学习 > C#/ASP.NET >>

EnterpriseLibrary PolicyInjection 和 Unity 问题 !

请问 EnterpriseLibrary.PolicyInjection 6.0 和 unity 3.0 结合怎么使用

按网上的一大堆列子做了都不行!
IPerson per=PolicyInjection.Create<Person, IPerson>();
这句报:The PolicyInjector has not been set for the PolicyInjection static class. Set it invoking the PolicyInjection.SetPolicyInjector method..

unity 的配置代码在另一个文件,PolicyInjection 配置代码在web.config中:

<policyInjection>
    <policies>
      <add name="testPolicy">
        <matchingRules>
          <add type="Microsoft.Practices.EnterpriseLibrary.PolicyInjection.MatchingRules.MemberNameMatchingRule, Microsoft.Practices.EnterpriseLibrary.PolicyInjection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
            name="Member Name Matching Rule">
            <matches>
              <add match="ShowName" />
            </matches>
          </add>
          <add type="Microsoft.Practices.EnterpriseLibrary.PolicyInjection.MatchingRules.TypeMatchingRule, Microsoft.Practices.EnterpriseLibrary.PolicyInjection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
            name="Type Matching Rule">
            <matches>
              <add match="UnitTest.Core.Person" />
            </matches>
          </add>
        </matchingRules>
        <handlers>
          <add type="UnitTest.Core.PersonCallHandler, UnitTest.Core"
            name="PersonCallHandler" />
        </handlers>
      </add>
    </policies>
  </policyInjection>


还有 直接在unity 的 container 里面配置 <interception> 是没有任何问题的。
我想分开配置,像上面说的,分开在两个不同的文件里配置,要怎么弄啊,搞了好就都搞不好啊,有没有demo 代码啊! EnterpriseLibrary  PolicyInjection Unity --------------------编程问答-------------------- 木有人啊 --------------------编程问答--------------------  真的没有人啊 --------------------编程问答-------------------- 在web.config中加上下面的配置:

<configuration>
  <configSections>
    <section name="enterpriseLibrary.ConfigurationSource" 
 type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common" />
  </configSections>
  <enterpriseLibrary.ConfigurationSource selectedSource="File-based Configuration Source">
    <sources>
      <add name="System Configuration Source" 
 type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.SystemConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common" />
      <add name="File-based Configuration Source" 
 type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common"
          filePath="InjectionPolicy.xml" />
    </sources>
  </enterpriseLibrary.ConfigurationSource>
</configuration>

然后建一个InjectionPolicy.xml文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="policyInjection"
 type="Microsoft.Practices.EnterpriseLibrary.PolicyInjection.Configuration.PolicyInjectionSettings, Microsoft.Practices.EnterpriseLibrary.PolicyInjection" />
</configSections>
<policyInjection>
<policies>
<add name="testPolicy">
    。。。
</add>
</policies>
</policyInjection>
</configuration>
--------------------编程问答--------------------
引用 3 楼 jshi123 的回复:
在web.config中加上下面的配置:

<configuration>
  <configSections>
    <section name="enterpriseLibrary.ConfigurationSource" 
 type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common" />
  </configSections>
  <enterpriseLibrary.ConfigurationSource selectedSource="File-based Configuration Source">
    <sources>
      <add name="System Configuration Source" 
 type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.SystemConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common" />
      <add name="File-based Configuration Source" 
 type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common"
          filePath="InjectionPolicy.xml" />
    </sources>
  </enterpriseLibrary.ConfigurationSource>
</configuration>

然后建一个InjectionPolicy.xml文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="policyInjection"
 type="Microsoft.Practices.EnterpriseLibrary.PolicyInjection.Configuration.PolicyInjectionSettings, Microsoft.Practices.EnterpriseLibrary.PolicyInjection" />
</configSections>
<policyInjection>
<policies>
<add name="testPolicy">
    。。。
</add>
</policies>
</policyInjection>
</configuration>


老兄 能否给个demo ? 我按你的这样做了,但还是:
IPerson per=PolicyInjection.Create<Person, IPerson>();
这句报:The PolicyInjector has not been set for the PolicyInjection static class. Set it invoking the PolicyInjection.SetPolicyInjector method..

这个"PolicyInjector "  要怎么样配置才会自动初始化阿
补充:.NET技术 ,  分析与设计
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,