概述
场景一:接口和实现都是泛型。
//
// 类库
//
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, 程序集名称 " />
// 类库
//
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, 程序集名称" />
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 > )];
// 类库
//
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, 程序集名称" />
id ="UserRespository(其实随便)"
service ="完整的命名空间.IRepository`1[[完整的命名空间.User, User所在程序集名称]], IRepository所在程序集名称"
type ="完整的命名空间.UserRespository, 程序集名称" />
最后
以上就是兴奋大船为你收集整理的Castle IOC 针对泛型接口的配置文件的写法的全部内容,希望文章能够帮你解决Castle IOC 针对泛型接口的配置文件的写法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复