在多长开发中,如何通过接口调用获取返回值,而不用在bll层里应用dal层的类名
例如:
bll层
void getadminlist()
{
//我常用的做法是
Iadmin Iad=new admin();
dataset ds=Iad.getadmin();
//能不能有种方法,别让我去new admin();??

}idal层
interface Iadmin
{
dataset  getadmin();
}dal层
public class admin:Iadmin
{
public dataset getadmin()
{
......

}

解决方案 »

  1.   

    可以配置,通过反射动态调用!
    Assembly.Load(...)[align=center]********************************************************
    本内容用 CSDN小秘书 回复
    每天回帖即可获得10分可用分!
    ********************************************************[/align]
      

  2.   

    Assembly ass = Assembly.LoadFrom(file);//dll路径
    Iadmin server = (Iadmin)Activator.CreateInstance(typeof(Iadmin));
    这样就行了[align=center]********************************************************
    本内容用 CSDN小秘书 回复
    每天回帖即可获得10分可用分!
    ********************************************************[/align]
      

  3.   

      private static object GetInstance(string CacheKey)
            {
                object objType = DataCache.GetCache(CacheKey);
                if (objType == null)
                {
                  
                   objType = Assembly.Load(DALFactory._path).CreateInstance(CacheKey);
                   DataCache.SetCache(CacheKey, objType);
                }
                return objType;
            }
            public static IAnnounceDAL AnnounceDALInstance()
            {
                string CacheKey = DALFactory._path + ".AnnounceDAL";
                object objType = DALFactory.GetInstance(CacheKey);
                return (IAnnounceDAL)objType;
            } private static readonly IAnnounceDAL _dal = DALFactory.DALFactory.AnnounceDALInstance();
            public static void Add(Announce obj)
            {
                _dal.Add(obj);
            }