我对.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);
}
有任何改进或建议吗?
答案 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);
}