zoukankan      html  css  js  c++  java
  • Spring.Net Ioc 实例

    配置文件 import.xml
     1 <?xml version="1.0" encoding="utf-8" ?>
     2 <objects xmlns="http://www.springframework.net" xmlns:aop="http://www.springframework.net/aop">
     3 
     4   <!--带参数的构造函数-->
     5   <object id="HelloWorld1" type="IocApp.HelloWorld, IocApp">
     6     <constructor-arg name="name" value="Wang" />
     7     <constructor-arg name="age" value="23" />
     8   </object>
     9 
    10   <!--不带参数的构造函数,并且给属性赋值-->
    11   <object id="HelloWorld2" type="IocApp.HelloWorld, IocApp">
    12     <property name="Name" value="Tom" />
    13   </object>
    14   <!--静态工厂方法创建对象-->
    15   <object id="HelloWorld3" type="IocApp.HelloWorld, IocApp" factory-method="Create"/>
    16 
    17   <!--实例工厂方法创建对象-->
    18   <object id="HelloWorld4" type="IocApp.HelloWorld, IocApp" factory-method="Build" factory-object="builder" />
    19   <object id="builder" type="IocApp.Builder, IocApp" />
    20 
    21   <!--对象初始化方法-->
    22   <object id="HelloWorld5" type="IocApp.HelloWorld, IocApp" init-method="Init" singleton="false"/>
    23 
    24   <!--工厂类 的静态工厂方法 不带参数-->
    25   <object id="HelloWorld6" type="IocApp.Builder, IocApp" factory-method="StaticBuild" />
    26 
    27   <!--工厂类 的静态工厂方法 带参数  且参数为Type类型-->
    28   <object id="HelloWorld7" type="IocApp.Builder, IocApp" factory-method="StaticBuild">
    29      <constructor-arg name="type" value="IocApp.HelloWorld, IocApp"/>       
    30   </object> 
    31 </objects>
     1     using Spring.Core;
     2     using Spring.Context;
     3     using Spring.Context.Support;
     4 
     5     public class Builder
     6     {
     7         public  HelloWorld Build()
     8         {
     9             return new HelloWorld("Builder", 30);
    10         }
    11 
    12         public static HelloWorld StaticBuild()
    13         {
    14             return new HelloWorld("StaticBuilder", 21);
    15         }
    16 
    17 
    18         public static  object StaticBuild(Type type)
    19         {
    20            return   Activator.CreateInstance(type);           
    21         }
    22 
    23     }
    24 
    25     public class HelloWorld
    26     {
    27         private string name;
    28         private int age;
    29 
    30         public HelloWorld(string name, int age)
    31         {
    32             this.name = name;
    33             this.age = age;
    34         }
    35         public string Name
    36         {
    37             get
    38             {
    39                 return name;
    40             }
    41             set
    42             {
    43                 name=value;
    44 
    45             }
    46         }
    47       
    48         public HelloWorld()
    49         {
    50            
    51         }
    52 
    53         public void init()
    54         {
    55             name="init Name";
    56             age=29;
    57         }
    58         public static HelloWorld Create()
    59         {
    60             return new HelloWorld("wangQiang", 25);
    61         }
    62         public override string ToString()
    63         {
    64             return String.Format("Name={0}; Age={1}", name, age);
    65         }
    66     }
    67 
    68     public class Program
    69     {
    70         static  IApplicationContext context = new XmlApplicationContext(@"..\..\import.xml");
    71         static void Main(string[] args)
    72         {
    73 
    74 
    75             for (int i=1; i<=7; i++)
    76                 Show("HelloWorld"+i);
    77  
    78             Console.ReadKey();
    79         }
    80 
    81         static void Show(string id)
    82         {
    83             object o1=context.GetObject(id);
    84             object o2=context.GetObject(id);
    85             Console.WriteLine(o1);
    86             Console.WriteLine(id+ "  IsEqueals:"+ object.ReferenceEquals(o1, o2)); // output: true
    87         }
    88        
    89     }
  • 相关阅读:
    *Triangle
    Pascal's Triangle II
    Pascal's Triangle
    Merge Sorted Array
    House Robber
    Find Peak Element
    Container With Most Water
    *Next Permutation
    top命令VIRT,RES,SHR,DATA
    Octave简单使用
  • 原文地址:https://www.cnblogs.com/AspDotNetMVC/p/2918296.html
Copyright © 2011-2022 走看看