EnterpriseLibrary PolicyInjection 和 Unity 问题 !

空格键 2013-09-05 05:41:04
请问 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 代码啊!
...全文
484 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
空格键 2013-09-22
  • 打赏
  • 举报
回复
引用 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 " 要怎么样配置才会自动初始化阿
jshi123 2013-09-06
  • 打赏
  • 举报
回复
在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>
空格键 2013-09-06
  • 打赏
  • 举报
回复
真的没有人啊
空格键 2013-09-05
  • 打赏
  • 举报
回复
木有人啊

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧