zoukankan      html  css  js  c++  java
  • castle windsor配置

    配置

    http://www.castleproject.org/container/documentation/v21/manual/windsorconfigref.html

    <configuration>
    
        <include uri="uri1" />
        <include uri="uri2" />
    
        <properties>
            <connection_string>value here</connection_string>
        </properties>
        
        <!-- used to register components before registering the facilities -->
        <bootstrap>
    
            <component 
                id=""
                service=""
                type=""
                inspectionBehavior="all|declaredonly|none"
                lifestyle="singleton|thread|transient|pooled|custom" 
                customLifestyleType="type that implements ILifestyleManager"
                initialPoolSize="<num>" maxPoolSize="<num>">
                <forwardedTypes>
                    <add service="" />
                </forwardedTypes>
                <parameters>
                    <paramtername>value</paramtername>
                </parameters>
                
                <interceptors>
                    <interceptor>${interceptor.id}</interceptor>
                </interceptors>
            
            </component>
        
        </bootstrap>
    
        <facilities>
        
            <facility id="" type="Facility full type name">
            
            </facility>
        
        </facilities>
        
        <components>
        
            <component 
                id=""
                service=""
                type=""
                inspectionBehavior="all|declaredonly|none"
                lifestyle="singleton|thread|transient|pooled|custom" 
                customLifestyleType="type that implements ILifestyleManager"
                initialPoolSize="<num>" maxPoolSize="<num>">
                <forwardedTypes>
                    <add service="" />
                </forwardedTypes>
                <parameters>
                    <paramtername>value</paramtername>
                </parameters>
                
                <interceptors>
                    <interceptor>${interceptor.id}</interceptor>
                </interceptors>
            
            </component>
        
        </components>
    
    </configuration>
    
    

    app.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="castle" type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor" />
      </configSections>
    
      <castle>      
        <!--出错<inclue uri="assembly://TestCastleWinsorConsoleApp.config.components.config" ></inclue>
        <inclue uri="assembly://TestCastleWinsorConsoleApp.config.components2.config" ></inclue>-->
        
        <!--用绝对路径可以-->    
        <!--<include uri="file://E:\_Projects\vs2008\TestCastleWinsorConsoleApp\TestCastleWinsorConsoleApp\config\components.config"></include>
        <include uri="file://E:\_Projects\vs2008\TestCastleWinsorConsoleApp\TestCastleWinsorConsoleApp\config\components2.config"></include>-->
    
          <!--<components> 
          <component id="taxcalc.service" type="TestCastleWinsorConsoleApp.TaxCalculator">
            <parameters>
              <Rate>0.2511</Rate>
            </parameters>
          </component>
          <component id="taxcalc.service2" type="TestCastleWinsorConsoleApp.TaxCalculator" >
            <parameters>
              <Rate>0.2522</Rate>
            </parameters>
          </component>
        </components>-->
      </castle>
    
    </configuration>
    
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <components>
        <component id="taxcalc.service1" type="TestCastleWinsorConsoleApp.TaxCalculator">
          <parameters>
            <Rate>0.111</Rate>
          </parameters>
        </component>
        <component id="taxcalc.service2" type="TestCastleWinsorConsoleApp.TaxCalculator" >
          <parameters>
            <Rate>0.222</Rate>
          </parameters>
        </component>
      </components>
    </configuration>
    
    
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Castle.Windsor;
    using Castle.Windsor.Configuration.Interpreters;
    using Castle.Core.Resource;
    
    namespace TestCastleWinsorConsoleApp
    {
        public class TaxCalculator
        {
            private decimal _rate = 0.125M;
            public decimal Rate
            {
                set { _rate = value; }
                get { return _rate; }
            }
            public decimal CalculateTax(decimal gross)
            {
                return Math.Round(_rate * gross, 2);
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                
                //WindsorContainer container = new WindsorContainer(new XmlInterpreter( new FileResource("components2.config" ))) ;
                //container.AddChildContainer(new WindsorContainer(new XmlInterpreter( new FileResource("components.config" ))) );
    
                WindsorContainer container = new WindsorContainer(new XmlInterpreter());
                TaxCalculator calculator = container.Resolve<TaxCalculator>("taxcalc.service1");
                decimal gross = 100;
                decimal tax = calculator.CalculateTax(gross);
                Console.WriteLine("Gross: {0}, Tax: {1}", gross, tax);
                Console.ReadKey();
    
            }
        }
    }
    
    
  • 相关阅读:
    MyBatis中文文档
    网络编程
    Django
    Django
    Django
    Django
    Django
    Django
    Django
    Django
  • 原文地址:https://www.cnblogs.com/wucg/p/1910579.html
Copyright © 2011-2022 走看看