自己动手把Spring.NET源码Down下来了,准备跟着教程,自己动手做一遍,用的是VS2012,做的过程当中,还是遇到很多问题的,有些东西,看起来很简单,做起来总是有一些细节的问题,所以一定还是要动手做的;
自己慢慢梳理了一些小问题,记录下来:
1、关于我们来一起学习Spring.NET的IoC容器对象的创建
方法有好几种,其中一种是使用独立配置文件,使用的对象XML文件定义,也是使用比较多的方法,关于对象XML文件,一般设置为嵌入式资源,即xml编译时作为嵌入资源为最好,其实不设置为嵌入式资源,也是可以的,只要让程序运行时能都读到XML对象文件即可;
<spring>
<context>
<!--Spring中 IOC容器 所使用的对象XML文件定义-->
<!--<resource uri="assembly://程序集名/命名空间.文件夹名/资源名" />-->
<resource uri="assembly://SharpCode/SharpCode.Config/Objects.xml"/>
</context>
</spring>
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 级透明度。 此模型的三个原则是透明代码、安全可靠关键代码和安全关键代码。
解决方法很简单,在程序集中添加如下代码:
[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]
参考:
1、http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_Index.html
2、http://www.cnblogs.com/cilence/archive/2013/02/21/2920455.html
3、http://msdn.microsoft.com/zh-cn/library/dd233102.aspx