我是靠谱客的博主 兴奋大船,最近开发中收集的这篇文章主要介绍Castle IOC 针对泛型接口的配置文件的写法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

场景一:接口和实现都是泛型。

 

//
//   类库
//
public   interface  IRepository < TBusinessModel >
        
where  TBusinessModel : IBusinessModel
{
}
public   class  NHRepository < TBusinessModel >  : IRepository < TBusinessModel >
    
where  TBusinessModel : IBusinessModel
{
}

//
//  Client
//
Castle.Windsor.IWindsorContainer container  =   new  Castle.Windsor.WindsorContainer( " 配置文件.xml " );
IRepository
< User >  r  =  (IRepository < User > )container[ typeof (IRepository < User > )];

//
//  在别的类里面作为Field
//
public   class  UserRespository :  
{
    
private  IRepository < User >  _userRep;

    
public  UserRespository(IRepository < User >  userRep)
    {
        _userRep 
=  userRep;
    }
}

< component
    id
= " 随便 "
    service
= " 完整的命名空间.IRepository`1, 程序集名称 "  
    type
= " 完整的命名空间.NHRepository`1, 程序集名称 "   />


配置文件:

< component
    
id ="随便"
    service
="完整的命名空间.IRepository`1, 程序集名称"  
    type
="完整的命名空间.NHRepository`1, 程序集名称"   />


场景二:接口是泛型,实现不是泛型

//
//   类库
//
public   interface  IRepository < TBusinessModel >
        
where  TBusinessModel : IBusinessModel
{
}
public   class  UserRespository : IRepository < User >
{
}

//
//  Client
//
Castle.Windsor.IWindsorContainer container  =   new  Castle.Windsor.WindsorContainer( " 配置文件.xml " );
IRepository
< User >  r  =  (IRepository < User > )container[ typeof (IRepository < User > )];


配置文件:

< component
    
id ="UserRespository(其实随便)"
    service
="完整的命名空间.IRepository`1[[完整的命名空间.User, User所在程序集名称]], IRepository所在程序集名称"  
    type
="完整的命名空间.UserRespository, 程序集名称"   />


 

最后

以上就是兴奋大船为你收集整理的Castle IOC 针对泛型接口的配置文件的写法的全部内容,希望文章能够帮你解决Castle IOC 针对泛型接口的配置文件的写法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(84)

评论列表共有 0 条评论

立即
投稿
返回
顶部