配置文件如下:
<!--
Core data access services
-->
<
component
id
="commondao"
service
="RXOA.DataAccess.ICommonDao`1,RXOA.DataAccess"
type
="RXOA.DataAccess.CommonDao`1,RXOA.DataAccess"
>
</
component
>
上面这种是一种通用的配置方法,也就是说这种配置可以使用任何类型如:
private
ICommonDao
<
Announce
>
_commonDao;
private
ICommonDao
<
AnnounceType
>
_typecommonDao;
private
ICommonDao
<
ObjectLooker
>
_objDao;


public
AnnounceService(ICommonDao
<
Announce
>
commonDao, ICommonDao
<
AnnounceType
>
typecommonDao,
ICommonDao
<
ObjectLooker
>
objDao)

{
this._commonDao = commonDao;
this._typecommonDao = typecommonDao;
this._objDao = objDao;
}
这里有三种不同的类型,只需上面一个配置即可。
你也可以配置制定类型的范型服务
<
component
id
='int.repos.generic'
service
='Namespace.IRepository`1[[System.Int32]],
AssemblyName'
type
='Namespace.Repository`1[[System.Int32]],
AssemblyName'
/>
更多参考Castle Documention
http://www.castleproject.org/container/documentation/v1rc3/usersguide/genericssupport.html
<!--
Core data access services
-->
<
component
id
="commondao"
service
="RXOA.DataAccess.ICommonDao`1,RXOA.DataAccess"
type
="RXOA.DataAccess.CommonDao`1,RXOA.DataAccess"
>
</
component
>
private
ICommonDao
<
Announce
>
_commonDao;
private
ICommonDao
<
AnnounceType
>
_typecommonDao;
private
ICommonDao
<
ObjectLooker
>
_objDao;

public
AnnounceService(ICommonDao
<
Announce
>
commonDao, ICommonDao
<
AnnounceType
>
typecommonDao,
ICommonDao
<
ObjectLooker
>
objDao)
{
this._commonDao = commonDao;
this._typecommonDao = typecommonDao;
this._objDao = objDao;
}
你也可以配置制定类型的范型服务
<
component
id
='int.repos.generic'
service
='Namespace.IRepository`1[[System.Int32]],
AssemblyName'
type
='Namespace.Repository`1[[System.Int32]],
AssemblyName'
/>
更多参考Castle Documention
http://www.castleproject.org/container/documentation/v1rc3/usersguide/genericssupport.html
本文介绍了一种配置泛型服务的方法,通过配置文件可以为不同类型的泛型接口提供统一的实现方式,例如ICommonDao<T>。这种方式极大地提高了代码的复用性和维护性。
2330

被折叠的 条评论
为什么被折叠?



