
Spring.NET
云烟,不再年轻
积累是一个漫长的过程,它足以可以让你写出N本书的内容
展开
-
SPRING.NET 1.3.2 学习6--idref元素
下面用示例来说明idref元素的作用首先下面的xml配置了idref元素 . . . idref objecgt 在theClientObject对象里面引用了theTargetObject对象的名称,那么它是干什么用的?它的作用就是检测在idref引用的对象是否真正在XML里面定义过!使用idref标记允许容器在部署时 验证所被引用的对象是否存在第二种书写原创 2013-03-04 14:03:17 · 1259 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习13--value和ref的简写形式
property常规写法: hello hello hello简写: ref常规写法: 简写:key ref常规写法: 简写:原创 2013-03-21 10:22:38 · 3558 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习14--复合属性名称和Spring表达式的引用
举例在ojbect中嵌套定义一个property 也可以用表达式来设置property的值原创 2013-03-21 10:45:58 · 4320 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习17--使用延迟加载
延迟加载的意义是什么,为什么需要延迟加载,请看这篇文章浅析C#延迟加载的运行机制和应用场景http://www.51testing.com/html/00/n-235500.html关于这个,c#4.0 提供了一个包装类 Lazy,这里有它的源码分析http://www.cnblogs.com/me-sa/archive/2010/05/25/Lazy-initialization-Fx4.htm原创 2013-03-21 16:17:48 · 1950 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习16--使用depends-on
Spring.net使用节点来引用对象的依赖项。除非有特殊的初始化需求,一般不需要使用depends-on属性。但是,如果需要使用其它静态(类型或方法)或对象来做一些初始化工作,就可以借助depends-on属性来确保在使用依赖对象之前将其初始化 上面的配置文件中,要初始化objectOne对象,就必须先初始化manager和accoutDao对象原创 2013-03-21 14:59:43 · 1896 阅读 · 1 评论 -
SPRING.NET 1.3.2 学习15--事件注入
这部分转自博客园"刘冬"的博客http://www.cnblogs.com/GoodHelper/觉得写的很容易理解,就转过来了 在Spring.NET的IoC框架中,除了提供方法注入以外,还提供事件的注入。通过事件的注入,可以使架构体系的耦合降到最低。(参考 clingingboy的 Spring.NET学习笔记(3)-注册事件注入) 在listener节点处配置event和method属性原创 2013-03-21 12:44:28 · 1622 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习18--方法注入之IObjectFactoryAware,IObjectNameAware
多数用户都会将容器中的大部分对象布署为singleton模式。当一个singleton对象需要和另一个singleton对象协作,或者一个非singleton对象需要和另一个非singleson对象协作时,Spring.NET都能很好的处理它们的依赖关系。但是,如果对象的生存周期不同,就可能会产生问题。例如,假设一个singleton对象A要使用一个非singleton(原型)对象B,A中的每个方原创 2013-03-26 10:37:21 · 1967 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习20--方法注入之替换方法注入
这是一种用的比较少的注入方式。在Spring的配置中,通过replaced-method在需要替换类中指定需要被替换的方法,以及被哪个类替换。替换类应该实现Spring.Objects.Factory.Support中的IMethodReplacer接口。IMethodReplacer接口只有一个object Implement(object target, MethodInfo method,转载 2013-03-27 11:15:09 · 2423 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习19--方法注入之查询方法注入
查询方法注入(Lookup Method Injection),对这个名称一直都感到奇怪,特别是了解了它的用法以后,感觉它就像是抽像工厂?查询方法XML配置的lookup-method name中配置的方法名,一定会返回object中配置的对象Spring.Net可以对动态的对目标对象的抽象方法或者虚方法进行覆盖,并且可以在容器类查找已命名的对象,查询方法注入就利用了这一功能。被查询的对象一般应该原创 2013-03-27 10:03:32 · 2000 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习25--自定义对象的行为
Spring.NET通过几个专门的接口来控制容器中对象的行为,这些接口包括Spring.NET定义的IInitializingObject接口和标准的System.IDisposable接口。容器会在实现了这两个接口的对象上调用AfterPropertyiesSet()方法和Dispose()方法,这样我们就有机会在对象初始化和销毁时做一些额外的工作IInitializingObject接口和in原创 2013-05-02 16:15:18 · 1552 阅读 · 1 评论 -
SPRING.NET 1.3.2 学习26--容器扩展点
IObjectFactory本质上是一个注册了各种对象及其依赖项的高级工厂。通过IObjectFactory接口,可以读取容器内的对象定义并访问它们所代表的对象。如果只需要使用IOjbectFactory接口的功能,可以用代码创建其实现类的实例,然后读取XML对象定义中的内容,如下:[C#]IResource input = new FileSystemResource ("objects.xm原创 2013-05-06 15:19:55 · 1468 阅读 · 1 评论 -
SPRING.NET 1.3.2 学习23--使用方法的返回值进行注入
MethodInvokingFactoryObject允许使用任意方法的返回值进行注入。MethodInvokingFactoryObject类可以处理实例方法和静态方法。此外,Spring.NET中另有一种处理对象初始化的机制(参考4.5.1.1,IInitializingObject接口和init-method属性)也可以用来进行(初始化)方法的调用,但是用这种机制调用方法的目的只是进行初始化原创 2013-04-02 16:17:00 · 1985 阅读 · 1 评论 -
SPRING.NET 1.3.2 学习22--使用字段值进行注入
FieldRetrievingFactoryObject类的功能和PropertyRetrievingFactoryObject很相似。如其名称所示,FieldRetrievingFactoryObject可以获取对象或类(指静态字段)的公有字段值。下面的例子使用FieldRetrievingFactoryObject获取一个类的公有静态字段:<object id="withTypesField"原创 2013-04-01 16:18:36 · 1349 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习21--使用对象或类的属性值进行注入
PropertyRetrievingFactoryObject是IFactoryObject接口的实现类,用于将其它对象或类型的属性值注入给对象的属性或构造器参数。该类可以从对象或类型中(指静态属性)获取任何公有属性的值。如果要用PropertyRetrievingFactoryObject获取实例属性的值,需要为其指定目标对象及属性名,目标对象可以是任意其它对象,甚至可以是内联对象。如果要获取静原创 2013-04-01 15:40:07 · 1756 阅读 · 2 评论 -
SPRING.NET 1.3.2 学习7--使用外部对象和内部对象
使用ref标签来使用外部对象定义外部对象: 使用外部对象:<object id="AccountService" <-- notice that the name of this object is the same as the name of the 'parent' object type="Spring.Aop.Framework.ProxyFactoryObje原创 2013-03-07 14:19:27 · 1613 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习8--设置集合对象的值
设置集合对象的值,包括,IList, ISet,NameValueCollection,IDictionary下面是一个例子 <!-- results in a call to the setter of the SomeList (System.Collections.IList) property -->原创 2013-03-07 14:25:15 · 1446 阅读 · 1 评论 -
SPRING.NET 1.3.2 学习11--设置空值和Null值
空值 等效于exampleObject.Email = "";Null值 等效于exampleObject.Email = null;原创 2013-03-07 16:57:14 · 1473 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习9--设置泛型集合的值
下面举例,一个类中包含了一个泛型集合类型public class LotteryTicket { List list; DateTime date; public List Numbers { set { list = value; } get { return list; } } public DateTime Date { get { re原创 2013-03-07 14:41:07 · 2143 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习10--合并集合对象
下面定义了两个集合,一个叫parent,一个叫child,都有一个属性为AdminEmails child集合的parent标签值为上面定义的parent,并且有一个标签原创 2013-03-07 14:57:55 · 1542 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习12--为索引器属性赋值
假设有如下类,有两个索引器,一个是整形,一个是字符串public class Person{ private IList favoriteNames = new ArrayList(); private IDictionary properties = new Hashtable(); public Person() { favoriteNames原创 2013-03-08 16:24:03 · 1575 阅读 · 1 评论 -
SPRING.NET 1.3.2 学习1--组件功能说明
Spring.net 架构如上图,下面逐一看看它们的用途Spring.Core:Spring.net的最基本部分,允许使用依赖注入的方式来配置你的程序Spring.Aop:使用该组件来执行AOP功能.AOP集中常见的功能有针对性的在程序中声明应用,Spring的AOP类库提供了预定义的易于使用方面的事务、日志记录、性能监控、缓存、方法重试,异常处理.Spring.Data:使用这个模块在ADO中实原创 2013-02-28 11:27:42 · 3352 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习2--快速入门应用示例说明
Movie Finder:一个使用依赖注入运用Spring IOC容器的例子Application Context:演示了IoC容器特性如定位、访问ResourceSet对象、应用资源到对象属性Aspect Oriented Programming:演示了使用AOP框架对你的现有的对象添加额外的行为.例子展示如何编程和声明AOP配置.Distributed Computing:一个计算器抽象远程服原创 2013-02-28 11:28:23 · 3316 阅读 · 1 评论 -
SPRING.NET 1.3.2 学习3--IOC容器
IoC相关组件功能介绍Spring.Core:该程序集是Spring.Net IoC容器的基础.IObjectFactory:该接口提供了一个高级的配置机制并能管理任何类型的对象.IApplicationContext:IObjectFactory的子接口,更容易的集成Spring.NET的AOP特性,消息资源处理(用于国际化),事件传播,应用程序特定层上下文,例如用于web应用程序中的WebAp原创 2013-02-28 11:29:11 · 2943 阅读 · 1 评论 -
SPRING.NET 1.3.2 学习4 --实例化对象
在Spring.NET下实例化对象有几种方法1.使用构造器object id="exampleObject" type="Examples.ExampleObject, ExamplesLibrary"/> Examples.ExampleObject为编译成ExamplesLibrary程序集中的类,ExampleObject定义在Examples命名空间中如果你用定义一个嵌套类,可以使用一个+原创 2013-02-28 13:48:27 · 2517 阅读 · 0 评论 -
SPRING.NET 1.3.2 学习5--依赖注入
1.使用属性依赖注入:XML C#public class ExampleObject{ private AnotherObject objectOne; private YetAnotherObject objectTwo; private int i; public AnotherObject ObjectOne原创 2013-03-01 15:27:07 · 2121 阅读 · 0 评论 -
SPRING.NET 配置对象属性注入的例子
有几年没用spring.net了,下星期打算在项目里面用一下,毕竟注入能力太强大了。 首先还是用NuGet引用一下 Install-Package Spring.Core 下面创建三个类,其中一个类包含另外两个类作为属性namespace SpringNetPropertyInject{ public class GameChannel { public str原创 2015-07-11 19:44:58 · 3614 阅读 · 3 评论