一、开发环境

编译器:VS2013

.Net版本:.net framework4.5

二、涉及程序集

Spring.Core.dll:1.3

Common.Logging

三、开发过程

1.项目结构

2.添加Person.cs

namespace CreateObjects
{
public class Person
{
public override string ToString()
{
return "我是Person类";
} public class Heart
{
public override string ToString()
{
return "我是Heart类";
}
}
}
}

3.添加GenericClass.cs

namespace CreateObjects
{
public class GenericClass<T>
{
}
}

4.添加StaticObjectsFactory.cs

namespace CreateObjects
{
public static class StaticObjectsFactory
{
public static Person CreateInstance()
{
return new Person();
}
}
}

5.添加InstanceObjectsFactory.cs

namespace CreateObjects
{
public class InstanceObjectsFactory
{
public Person CreateInstance()
{
return new Person();
}
}
}

6.配置Spring.Net

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"/>
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/>
</sectionGroup>
</configSections>
<spring>
<context>
<resource uri="config://spring/objects"></resource>
</context>
<objects>
<!--构造器-->
<object id="person" type="CreateObjects.Person,CreateObjects"></object>
<!--嵌套类型-->
<object id="heart" type="CreateObjects.Person+Heart,CreateObjects"></object> <!--泛型类型GenericClass<int>-->
<object id="genericClass" type="CreateObjects.GenericClass&lt;int>,CreateObjects"></object> <!--静态工厂-->
<object id="staticObjectsFactory"
type="CreateObjects.StaticObjectsFactory,CreateObjects"
factory-method="CreateInstance" ></object> <!--实例工厂-->
<!--工厂-->
<object id="instanceObjectsFactory" type="CreateObjects.InstanceObjectsFactory,CreateObjects"></object>
<!--创建的对象-->
<object id="instancePerson" factory-method="CreateInstance" factory-object="instanceObjectsFactory"></object> </objects>
</spring>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>

7.控制台程序如下

namespace CreateObjects
{
class Program
{
static void Main(string[] args)
{
IApplicationContext context = ContextRegistry.GetContext();
Person person = context.GetObject("person") as Person;
Console.WriteLine(person); Person.Heart heart = context.GetObject("heart") as Person.Heart;
Console.WriteLine(heart); GenericClass<int> genericClass = context.GetObject("genericClass") as GenericClass<int>;
Console.WriteLine(genericClass); Person personStaticFactory = context.GetObject("staticObjectsFactory") as Person;
Console.WriteLine(personStaticFactory); Person personInstanceFactory = context.GetObject("instancePerson") as Person;
Console.WriteLine(personInstanceFactory);
Console.ReadKey();
}
}
}

最新文章

  1. 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(五)地图切换以及图层显示模块
  2. IO端口、IO内存、IO空间、内存空间的含义和联系
  3. HTTP methods 与 RESTful API
  4. c#生成word文档
  5. ionic接入广告
  6. 《MATLAB从入门到放弃》打通 “矩阵” 障碍
  7. NYOJ 119 士兵杀敌(三) RMQ ST
  8. iOS-Xcode解决【workspace integrity couldn&#39;t load project&#39;】
  9. [Vue warn]: Do not use built-in or reserved HTML elements as component id: header
  10. “The operation cannot be completed because the DbContext has been disposed” exception with lazy load disabled
  11. 怎么让win7右下角只显示时间不显示日期 ?(可行)
  12. 20165211 学习基础和C语言调查
  13. MySQL索引分类和各自用途
  14. Day 5 字典的操作
  15. oracle基于3种方法的大数据量插入更新
  16. HAL层编写规范
  17. 如何批处理多个MySQL文件
  18. POJ - 2387 Til the Cows Come Home (最短路Dijkstra+优先队列)
  19. 搭建hexo博客并部署到github上
  20. $python数据分析基础——初识numpy库

热门文章

  1. zoj2479 Cover the Rectangular Ground
  2. 权限框架之Shiro详解(非原创)
  3. JDBC的流数据
  4. 我的arcgis培训照片13
  5. 我的arcgis培训照片8
  6. atom的react自动补全插件
  7. Web端口复用正向后门研究实现与防御
  8. easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)
  9. Genymotion模拟器连接不上开发服务器解决办法
  10. convex hull