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>
castle windsor学习-----XML Inline Parameters 内联参数的更多相关文章
- inline(内联)函数
		
1,为小操作定义一个函数的好处是: a.可读性会强很多. b.改变一个局部化的实现比更改一个应用中的300个出现要容易得多 c.函数可以被重用,不必为其他的应用重写代码 ...
 - 重构改善既有代码设计--重构手法02:Inline Method (内联函数)& 03: Inline Temp(内联临时变量)
		
Inline Method (内联函数) 一个函数调用的本体与名称同样清楚易懂.在函数调用点插入函数体,然后移除该函数. int GetRating() { return MoreThanfiveLa ...
 - block(块级元素)和 inline(内联元素) 的区别
		
block(块级元素)和 inline(内联元素) 的区别 (2009-01-05 10:32:07) 转载▼ 标签: 杂谈 分类: div+css div这样的块级元素,就会自动占据一定矩形空间,可 ...
 - C++学习笔记 宏 const 内联 枚举
		
宏, const变量, 内联, 枚举 宏 宏定义: 宏即宏替换,在C语言源程序中允许用一个标识符来表示一个字符串,称为宏,关键字 define,在所有使用到宏的地方都只是直接的替换而不做任何类型检查 ...
 - inline(内联函数)
		
一般来说,调用函数会造成:目前的指令位置被存储下来,程序流跳转到所调用的函数,然后执行调用函数,最后跳转回之前存储的位置.对于需要常常调用的小函数来说,这会影响程序的运行效率.所以,c99新增了inl ...
 - Castle Windsor 学习-----Installer的几种安装方式
		
翻译 当使用依赖注入容器时,你首先要向容器中注册你的组件,Windsor使用installers(该类型实现IWindsorInstaller接口)来封装和隔离注册的逻辑,可以使用Configurat ...
 - c++学习笔记3(内联函数)
		
函数调用是有开销的,调用时需将参数放入栈中,返回地址也要放入,返回时还需从栈中取出,跳转返回地址去执行,需几条语句的时间,如果本身程序代码短,则会显得十分浪费,所以引入了内联函数的机制 写法:在函数前 ...
 - inline(内联元素)和block(块级元素) 的区别
		
块级元素,默认是独自占据一行的.比如是<p>.<h1>.<h2>.<h3>.<h4>.<h5>.<h6>.<u ...
 - [Castle Windsor]学习依赖注入
		
初次尝试使用Castle Windsor实现依赖注入DI,或者叫做控制反转IOC. 参考: https://github.com/castleproject/Windsor/blob/master/d ...
 
随机推荐
- windows下忘记mysql超级管理员rootpassword的解决的方法
			
今天帮一个朋友找回了MYSQL的超级管理员ROOTpassword.開始输入命令的时候少打了个"点"害的折腾了几个小时.最终攻克了,写个教程,方便以后使用! 假设你是server是 ...
 - Python基础--通用序列操作
			
Python 继续 Python包含6种内建的序列,各自是:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.我们将逐步进行介绍. 今天主要介绍一下通用序列操作.放之四海而 ...
 - 写sql语句统计各个学生各科成绩(case when用法)
			
尊重原创:http://blog.csdn.net/love_java_cc/article/details/78268326 有如下一张表score: 建表语句: CREATE TABLE `sco ...
 - mysql命令行导入和导出数据
			
首先打开命令窗口,输入命令:mysql -h localhost -u selffabu -p 连接成功后,进行下面的操作 MySQL中导出CSV格式数据的SQL语句样本如下: select * fr ...
 - [译]GLUT教程 - 移动镜头2
			
Lighthouse3d.com >> GLUT Tutorial >> Input >> Move the Camera II 本节的最后一个示例是回顾.现在我们 ...
 - Google Code Jam 2014 Round 1 A:Problem B. Full Binary Tree
			
Problem A tree is a connected graph with no cycles. A rooted tree is a tree in which one special ver ...
 - find 多文件查找需要单引号
			
[root@db01 local]# find -name '*.com'|xargs egrep "qq"./tt.com:qq[root@db01 local]# find ...
 - NIM游戏策略
			
NIM取子游戏是由两个人面对若干堆硬币(或石子,或..)进行的游戏,游戏由两个人进行,设有k>=1堆硬币,各堆含有n1,n2,n3,n4.....,nk个硬币,游戏的目的就是选取最后剩下的硬币. ...
 - saltstack之服务管理
			
1.启动服务 /srv/salt/service/nfs.sls rpcbind: service.running: - enable: True #开机自动启动 # - enable: False ...
 - NSIS 变量
			
$PROGRAMFILES 程序文件目录(通常为 C:\Program Files 但是运行时会检测). $COMMONFILES 公用文件目录.这是应用程序共享组件的目录(通常为 C:\Progra ...