上一章中,我们对基本的数据类型“String”进行了简单的测试,现在如果我们想要注入一个自定义的类型该怎么办呢?
现在,我有一个IBaseService的接口:
public interface IBaseService<T> where T : class
{
IEnumerable<T> FindAll(Func<T, bool> exp);
}
一个实现这个接口的类BaseService:
private DataContext mDSMISDB;
public DataContext MDSMISDB
{
get { return mDSMISDB; }
set { mDSMISDB = value; }
}
#endregion
#region IBaseService<T> 成员
public IEnumerable<T> FindAll(Func<T, bool> exp)
{
return mDSMISDB.GetTable<T>().Where(exp);
}
这里的MDSMISDB是我要注入的对象:
<object id="MDSMISDataContext" type="ASPMvc.Models.MDSMISDataContext,ASPMvc"></object>
<object id="IBaseService" type="ASPMvc.BaseService<ASPMvc.Models.Employee>,ASPMvc" singleton="false">
<property name="mDSMISDB" ref="MDSMISDataContext"></property>
这里注意两点:
一、我的BaseService类是个泛型的类,所以在配置时也要注明是泛型的。并且‘<’要写成‘<’
二、注意要将Employee所在的namespace也要完全的写入,不然会报异常的。