zoukankan      html  css  js  c++  java
  • Spring.Net学习笔记一(IOC第一个实例)

         最近,即将要去新加坡出差,所以在签证这段时间比较空闲,所以想起学习点东西,由于接触过Unity,Autofac等IOC容器,没有接触Spring.Net,故想揭开它神奇的面纱。任何东西都是纸老虎!

         首先还是来一个简单创建对象的例子。

         第一步:我现在推荐使用Nuget来下载最新的程序集,这个能及时更新,而且能自动引起程序集所依赖的项。

         第二步:增加配置文件,按照Sprint.Net手册增加配置文件。

         第三步,进行测试运行。

         代码如下:

          新建的类库代码:Dao

          

     1 namespace Dao
     2 {
     3     public interface IPersonDao
     4     {
     5         void Save();
     6     }
     7     public class PersonDao : IPersonDao
     8     {
     9         public void Save()
    10         {
    11             Console.WriteLine("保存 Person");
    12         }
    13     }
    14 
    15     public class PersonDao1 : IPersonDao
    16     {
    17         public void Save()
    18         {
    19             Console.WriteLine("保存 Person1");
    20         }
    21     }
    22 }

      配置文件代码:

      

     1 <?xml version="1.0" encoding="utf-8" ?>
     2 <configuration>
     3   <configSections>
     4     <sectionGroup name="spring">
     5       <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
     6       <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
     7     </sectionGroup>
     8   </configSections>
     9   <spring>
    10     <context>
    11       <!--容器配置-->
    12       <resource uri="config://spring/objects"/>
    13     </context>
    14     <objects xmlns="http://www.springframework.net">
    15       <!--这里放容器里面的所有节点-->
    16       <description>An  example that demonstrates simple IoC features.</description>
    17       <!--name 必须要唯一的,type=类的全名称,所在的程序集-->
    18       <object name="PersonDao" type="Dao.PersonDao1, Dao">
    19       </object>
    20     </objects>
    21   </spring>
    22   <startup>
    23     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
    24   </startup>
    25 </configuration>

    入口函数代码:

     1 using Dao;
     2 using Spring.Context;
     3 using Spring.Context.Support;
     4 using System;
     5 using System.Collections.Generic;
     6 using System.Linq;
     7 using System.Text;
     8 using System.Threading.Tasks;
     9 
    10 namespace MovieApp
    11 {
    12     class Program
    13     {
    14         static void Main(string[] args)
    15         {
    16             IApplicationContext ctx = ContextRegistry.GetContext();
    17             IPersonDao dao = ctx.GetObject("PersonDao") as IPersonDao;
    18             if (dao != null)
    19             {
    20                 dao.Save();
    21                 Console.WriteLine("我是IoC方法");
    22                 Console.ReadKey();
    23             }
    24         }
    25     }
    26 }

     

     运行很良好,出来想要的结果!

         

  • 相关阅读:
    Codeforces Round #547 F1&F2. Same Sum Blocks(贪心)
    Codeforces Round #547 D. Colored Boots(贪心)
    Codeforces Round #547 C. Polycarp Restores Permutation(二分枚举/数学+模拟)
    CCF 201812-4 数据中心(最小生成树)
    CCF【小明放学&小明上学】
    TIME_WAIT状态
    ping的详细过程
    两段不相邻子段和之和最大
    神水一题之“Who's in the Middle”
    日进一步之“A Knight's Journey”
  • 原文地址:https://www.cnblogs.com/wangyhua/p/IOC.html
Copyright © 2011-2022 走看看