• castle windsor学习-----XML Inline Parameters 内联参数


    当使用XML配置的时候,可能要给组件指定各种各样的依赖

    1。简单的参数

      参数名称不区分大小写

    <component
       id="ping"
       type="Acme.Crm.Services.PingService, Acme.Crm">
       <parameters>
          <pingServer>http://acme.org</pingServer>
          <pingInterval>00:00:30</pingInterval>
          <pingRetries>3</pingRetries>
          <pingNotificator>${emailSender}</pingNotificator>
       </parameters>
    </component>

    简单的参数是指简单的类型,如基元类型,Uri,DateTime,TimeSpan,Type,Enum 或者 服务的重写,这些参数有它们值表达(简单的名称标签)

    参数类型怎么匹配呢?

    Windsor不要求你指定参数的类型,而是当解析组件的时候,它将试图通过名称去匹配组件的依赖,并检查是否可以将进行转换

    2.复杂的参数

      复杂的参数有多个元素组成

      例如你想指定如下的参数

    [Convertible]
    public class ServerInfo
    {
       private readonly Uri address;
    
       public ServerInfo(Uri address)
       {
          this.address = address;
       }
    
       public Uri Address
       {
          get { return address; }
       }
    
       public int Port { get; set; }
    }

    应该做如下配置

    <parameters>
       <pingServerInfo>
          <parameters>
             <address>http://localhost</address>
             <port>80</port>
          </parameters>
       </pingServerInfo>
    </parameters>

    3。List参数

    public class MyComponent
    {
       public MyComponent(IEnumerable<Uri> info)
       {
          Info = info;
       }
    
       public IEnumerable<Uri> Info { get; private set; }
    }
    <parameters>
       <info>
          <list>
             <item>http://localhost:80</item>
             <item>http://castleproject.org</item>
          </list>
       </info>
    </parameters>

    4.数组

    <parameters>
       <info>
          <array>
             <item>http://localhost:80</item>
             <item>http://castleproject.org</item>
          </array>
       </info>
    </parameters>

    5.字典

    <parameters>
       <info>
          <dictionary>
             <entry key="local">http://localhost:80</entry>
             <entry key="castle">http://castleproject.org</entry>
          </dictionary>
       </info>
    </parameters>
  • 相关阅读:
    每天一个JavaScript实例-从一个div元素删除一个段落
    Ewebeditor最新漏洞及漏洞大全
    WebKit历史项管理的实现
    C# 字符串处理
    Handler具体解释系列(四)——利用Handler在主线程与子线程之间互发消息
    (linux shell)第一章--小试牛刀(上)
    关于如何使用three.js的小教程&lt;一&gt;
    Readprocessmemory使用方法
    CentOS 6.4 U盘启动盘制作、安装及遇到的问题解决
    poj 2774 Long Long Message,后缀数组,求最长公共子串 hdu1403
  • 原文地址:https://www.cnblogs.com/lanpingwang/p/6535821.html
Copyright © 2020-2023  润新知