场景一:接口和实现都是泛型。
//
// 类库
//
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, 程序集名称" />
浙公网安备 33010602011771号