乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Spring.Net的IOC入門

       黃金屋1 2019-05-26

      1.構(gòu)造器注入

      復(fù)制代碼
      namespace Spring.Net
      {
          class Program
          {
              //構(gòu)造器注入
              static void Main(string[] args)
              {
                  IApplicationContext ctx = ContextRegistry.GetContext();
                  //通過容器創(chuàng)建對象
                  IUser _user = ctx.GetObject("User") as IUser;
                  _user.Show();
                  Console.ReadKey();
              }
          }
      
      
          public interface IUser
          {
              string Name { get; set; }
              void Show();
          }
      
          public class User : IUser
          {
              public string Name { get; set; }
              public void Show()
              {
                  Console.WriteLine("我是User的Show方法");
              }
          }
      }
      復(fù)制代碼
      復(fù)制代碼
      <?xml version="1.0" encoding="utf-8" ?>
      <configuration>
        <!--一定要在緊跟著configuration下面添加-->
        <configSections>
          <!--跟下面Spring.Net節(jié)點配置是一一對應(yīng)關(guān)系-->
          <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>
            <!--name 必須要唯一的,type=類的全名稱,所在的程序集-->
            <object name="User" type="Spring.Net.User, Spring.Net">  </object> 
          </objects>
        </spring>
        
          <startup> 
              <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
          </startup>
      </configuration>
      復(fù)制代碼

      2.屬性及構(gòu)造器注入

      復(fù)制代碼
      namespace Spring.Net
      {
          class Program
          {
              static void Main(string[] args)
              {
                  IApplicationContext ctx = ContextRegistry.GetContext();
                  //通過容器創(chuàng)建對象
                  IUser _user = ctx.GetObject("User") as IUser;
                  IPeople _people = ctx.GetObject("People") as IPeople;
                  Test _test = ctx.GetObject("Test") as Test;
                  Console.WriteLine(_user.Name);
                  Console.WriteLine(_user.Age);
                  Console.WriteLine("--------------------------------------------");
                  Console.WriteLine(_people.Man.Name);
                  Console.WriteLine(_people.Man.Age);
                  Console.WriteLine("--------------------------------------------");
                  Console.WriteLine(_test.Name);
                  Console.WriteLine(_test.Age);
                  Console.ReadKey();
              }
          }
      
      
          public interface IUser
          {
              string Name { get; set; }
              int Age { get; set; }
              void Show();
          }
      
          public class User : IUser
          {
              public string Name { get; set; }
              public int Age { get; set; }
              public void Show()
              {
                  Console.WriteLine("我是User的Show方法");
              }
          }
      
          public interface IPeople
          {
              IUser Man { get; set; }
          }
      
          public class People : IPeople
          {
              public IUser Man { get; set; }
          }
      
          public class Test
          {
              public string Name{get;set;}
              public int Age{get;set;}
              public Test(string name, int age)
              {
                  Name = name;
                  Age = age;
              }
          }
      }
      復(fù)制代碼
      復(fù)制代碼
      <?xml version="1.0" encoding="utf-8" ?>
      <configuration>
        <!--一定要在緊跟著configuration下面添加-->
        <configSections>
          <!--跟下面Spring.Net節(jié)點配置是一一對應(yīng)關(guān)系-->
          <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 name="User" type="Spring.Net.User, Spring.Net">
              <!--01屬性注入-值類型-->
              <property name="Name" value="Linq"></property>
              <property name="Age" value="25"></property>
            </object>
      
            <object name="People" type="Spring.Net.People, Spring.Net">
              <!--02屬性注入-引用類型-->
              <property name="Man" ref="User"></property>
            </object>
      
            <object name="Test" type="Spring.Net.Test, Spring.Net">
              <!--03構(gòu)造函數(shù)注入-->
              <constructor-arg name="name" value="config配置"></constructor-arg>
              <constructor-arg name="age" value="25"></constructor-arg>
            </object>
          </objects>
        </spring>
        
          <startup> 
              <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
          </startup>
      </configuration>
      復(fù)制代碼

       

      3.方法注入

      復(fù)制代碼
      namespace Spring.Net
      {
          class Program
          {
              static void Main(string[] args)
              {
                  IApplicationContext ctx = ContextRegistry.GetContext();   
                  ObjectFactory dao = (ObjectFactory)ctx.GetObject("objectFactory");
                  //查詢方法注入
                  //查詢方法注入就利用了這些功能。個人感覺查詢方法注入類似抽象工廠,
                  //為之不同的是,可以不用寫抽象的實現(xiàn)代碼,通過配置文件動態(tài)的切換組件。
                  dao.CreatePersonDao().Save();
                  //事件注入
                  Door door = (Door)ctx.GetObject("door");
                  door.OnOpen("Opening!");
                  Console.WriteLine();
                  Console.Read();
              }
      
          }
      
          public abstract class ObjectFactory
          {
              //或者可以是一個虛方法    
              public abstract PersonDao CreatePersonDao();
          }
      
          public class PersonDao
          {
              public void Save()
              {
                  Console.WriteLine("保存數(shù)據(jù)");
              }
          }
      
          //先定義一個委托
          public delegate string OpenHandler(string arg);
      
          public class Door
          {
              public event OpenHandler OpenTheDoor;
      
              public void OnOpen(string arg)
              {
                  //調(diào)用事件
                  if (OpenTheDoor != null)
                  {
                      Console.WriteLine(OpenTheDoor(arg));
                  }
              }
          }
      
          public class Men
          {
              public string OpenThisDoor(string arg)
              {
                  return "參數(shù)是:" + arg;
              }
          }
      }
      復(fù)制代碼
      復(fù)制代碼
      <?xml version="1.0" encoding="utf-8" ?>
      <configuration>
        <!--一定要在緊跟著configuration下面添加-->
        <configSections>
          <!--跟下面Spring.Net節(jié)點配置是一一對應(yīng)關(guān)系-->
          <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="personDao" type="Spring.Net.PersonDao, Spring.Net" singleton="false"/>
            
            <object id="objectFactory" type="Spring.Net.ObjectFactory, Spring.Net">
              <lookup-method name="CreatePersonDao" object="personDao"/>
            </object>
            
            <!--事件注入-->
            <object id="men" type="Spring.Net.Men, Spring.Net">
              <listener event="OpenTheDoor" method="OpenThisDoor">
                <ref object="door"/>
              </listener>
            </object>
            
            <object id="door" type="Spring.Net.Door, Spring.Net" />
          </objects>
        </spring>
        
          <startup> 
              <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
          </startup>
      </configuration>
      復(fù)制代碼

       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多