访问非静态DAL方法

时间:2010-10-10 15:54:58

标签: c# data-access-layer

我对.net很新,我正在创建一个用于学习目的的网络应用程序。我有一个非静态方法的DAL。我的问题是,我应该如何在业务层中访问这些方法?

我不确定这是好还是坏,但目前我使用这个类来创建DAL方法的实例:

public DataAccess
{
    public static T GetInstance<T>(Type type)
    {
        return (T)Activator.CreateInstance(type);
    }
}

我在我的DLL中使用这样的实例:

public void Save(Article article)
{
    ArticleDAL art = DataAccess.GetInstance<ArticleDAL>(typeof(ArticleDAL));
    art.Save(article);
}

有任何改进或建议吗?

2 个答案:

答案 0 :(得分:1)

是的,使用Generic约束,因此根本不需要传递类型:

public DataAccess 
{ 
    public static T GetInstance<T>() where T : new()
    { 
        return new T()
    } 
}

答案 1 :(得分:1)

真的没有理由不创建DAY的新实例,工厂在这里没有实现任何目标。

public void Save(Article article)
{
    ArticleDAL art = new ArticleDAL();
    art.Save(article);
}