在这里,我在类文件中的静态方法中编写了一些代码,请帮助我如何创建静态类的实例
public class ConnectionString
{
public static void CreateCommand(string querystring, string connectionString)
{
using(SqlConnection cn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(querystring, cn);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
}
}
}
您的ConnectionString
类可以重构以实现这样的接口:
public interface IDataAccess
{
void CreateCommand(string querystring, string connectionString);
}
此接口允许我们将其实现注入您在评论中提到的控制器中。所以你的ConnectionString
类(重命名为更有意义的 name DataAccess
)应该是这样的:
public class DataAccess : IDataAccess
{
public void CreateCommand(string querystring, string connectionString)
{
using (SqlConnection cn = new SqlConnection(connectionString))
{
cn.Open();
using (SqlCommand cmd = new SqlCommand(querystring, cn))
{
cmd.ExecuteNonQuery();
}
}
}
}
然后在您的控制器/客户端类中,您可以在运行时注入具体实现..
public class DataController : Controller
{
private readonly IDataAccess dataAccess;
public DataController(IDataAccess dataAcces)
{
this.dataAccess = dataAcces;
}
public ActionResult ShowData()
{
string querystring = "you t-sql query";
string connectionString = "<you sql connection string>";
this.dataAccess.CreateCommand(querystring, connectionString);
return this.View();
}
}
如果您正在使用 MVC 并且不知道如何解决依赖项,请参阅本文
或者,您可以像这样新建 DataAccess 类的实例:
public class DataController : Controller
{
private readonly IDataAccess dataAccess;
public DataController()
{
this.dataAccess = new DataAccess();
}
public ActionResult ShowData()
{
string querystring = "you t-sql query";
string connectionString = "<you sql connection string>";
this.dataAccess.CreateCommand(querystring, connectionString);
return this.View();
}
}
我不会推荐这种方法,因为它不可能对其进行单元测试。
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句