VS2010-VS2012运行编译Spring.NET问题解决

入手学习Spring.NET,还好有各位大牛的博客,拿来借鉴学习,实在是受益匪浅,推荐两位的博客,写的Spring.NET,个人觉得不错。

 

刘冬的博客

Tony

 

自己动手把Spring.NET源码Down下来了,准备跟着教程,自己动手做一遍,用的是VS2012,做的过程当中,还是遇到很多问题的,有些东西,看起来很简单,做起来总是有一些细节的问题,所以一定还是要动手做的;

自己慢慢梳理了一些小问题,记录下来:

1、关于我们来一起学习Spring.NET的IoC容器对象的创建

    方法有好几种,其中一种是使用独立配置文件,使用的对象XML文件定义,也是使用比较多的方法,关于对象XML文件,一般设置为嵌入式资源,即xml编译时作为嵌入资源为最好,其实不设置为嵌入式资源,也是可以的,只要让程序运行时能都读到XML对象文件即可;

1 <spring>
2     <context>
3       <!--Spring中 IOC容器 所使用的对象XML文件定义-->
4       <!--<resource uri="assembly://程序集名/命名空间.文件夹名/资源名" />--> 
5       <resource uri="assembly://SharpCode/SharpCode.Config/Objects.xml"/>
6     </context>
7   </spring>
8 </configuration>

 

2、“Spring.Context.Support.ContextRegistry”的类型初始值设定项引发异常

    App.Config中,将下面的代码注释:

<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

 

3、编译Spring.NET时,遇到"未处理的ConfigurationErrorsException"

    编译Spring.Core时提示"创建 spring/context 的配置节处理程序时出错: 方法“Spring.Context.Support.ContextHandler.Create(System.Object, System.Object, System.Xml.XmlNode)”是安全透明的,但它是安全关键类型的一个成员",Google一下,按照网上的解决方法,为Create方法和类ContextHandler添加上[SecurityCritical]标签之后,再次编译,又引发了"重写成员时违反了继承安全性规则,重写方法的安全可访问性必须与所重写方法的安全可访问性匹配"的错误,这是因为.NET Framework 4中引入了 2 级透明度。 此模型的三个原则是透明代码、安全可靠关键代码和安全关键代码。具体引发错误的原因,参见:

    http://msdn.microsoft.com/zh-cn/library/dd233102.aspx

 

解决方法很简单,在程序集中添加如下代码:

[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]

重新编译,通过~

 

未完待续~

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。