我试图了解如何使用Dapper(IDbConnection)依赖注入,并仍然能够使用内置的dispose.
我在网上发现了一些文章,但我觉得很容易理解.
我想弄清楚的是如何使这个简单的类可测试:
public class UserProfileRepository : IUserProfileRepository
{
private readonly IConfigRepository _configRepository;
public UserProfileRepository(IConfigRepository configRepository)
{
_configRepository = configRepository;
}
public UserProfile GetUserProfile(string userId)
{
const string query = @"Select UserId, UserName
From Users
Where UserId = @UserId";
using (var conn = new SqlConnection(_configRepository.GetConnectionString("MyConnectionString")))
{
conn.Open();
return conn.Query<UserProfile>(query, new { UserId = userId }).SingleOrDefault();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个看起来像这样的配置库,所以我可以模拟对web.config的请求:
public class ConfigRepository : IConfigRepository
{
public string GetConnectionString(string key)
{
var conString = ConfigurationManager.ConnectionStrings[key];
if (conString != null)
{
return …
Run Code Online (Sandbox Code Playgroud)