当前位置: 代码迷 >> C# >> Spring.Net学习笔记(四)-属性及构造器注入
  详细解决方案

Spring.Net学习笔记(四)-属性及构造器注入

热度:248   发布时间:2016-04-28 08:20:34.0
Spring.Net学习笔记(4)-属性及构造器注入

一、开发环境

操作系统:Win10

编译器:VS2013

.Net版本:.net framework4.5

二、涉及程序集

Spring.Core.dll:1.3.1

Common.Logging.dll

三、开发过程

1.项目结构

image

2.编写Product.cs

namespace SpringNetDi{    public class Product    {        public string Name { get; set; }        public decimal UnitPrice { get; set; }    }}

3.编写ProductFactory.cs

namespace SpringNetDi{    public class ProductFactory    {        public Product FactoryProduct { get; set; }    }}

4.编写Article.cs

namespace SpringNetDi{    public class Article    {        private string name;        private string writer;        public Article(string name, string writer)        {            this.name = name;            this.writer = writer;        }        public void GetMsg()        {            Console.WriteLine("你好,我是" + writer);        }    }}

5.配置app.config

<?xml version="1.0" encoding="utf-8" ?><configuration>  <configSections>    <sectionGroup name="spring">      <section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"></section>      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/>    </sectionGroup>  </configSections>  <spring>    <context>      <resource uri="config://spring/objects"></resource>    </context>    <objects>      <!--01属性注入-值类型-->      <object name =" product" type="SpringNetDi.Product,SpringNetDi">        <property name="Name" value="记号笔"></property>        <property name="UnitPrice" value="5"></property>      </object>      <!--02属性注入-引用类型-->      <object name="factory" type="SpringNetDi.ProductFactory,SpringNetDi">        <property name="FactoryProduct" ref="product"></property>      </object>      <!--03构造函数注入-->      <object name="article" type="SpringNetDi.Article,SpringNetDi">        <constructor-arg name="name" value="依赖注入"></constructor-arg>        <constructor-arg name="writer" value="Kimisme"></constructor-arg>      </object>    </objects>  </spring>  <startup>    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />  </startup></configuration>

6.控制台代码

namespace SpringNetDi{    class Program    {        static void Main(string[] args)        {            IApplicationContext context = ContextRegistry.GetContext();            Product product = context.GetObject("product") as Product;            Console.WriteLine(product.Name);            ProductFactory factory = context.GetObject("factory") as ProductFactory;            Console.WriteLine(factory.FactoryProduct.Name);            Article article = context.GetObject("article") as Article;            article.GetMsg();            Console.WriteLine("ok");        }    }}
  相关解决方案