데이터베이스에 액세스하려고 시도하는 코드를 누를 때 널 참조 예외가 발생합니다.Funq 컨테이너가 제대로 작동하지 않는 이유는 무엇입니까?
이것은 global.asax에 있으며 디버거를 밟았으며이 코드가 실행 중입니다. 이 코드를 명중
public class MvcApplication : System.Web.HttpApplication
{
public class DmsAppHost : AppHostBase
{
public DmsAppHost() : base("API", typeof(AppUsersService).Assembly) { }
public override void Configure(Funq.Container container)
{
var dbConnectionFactory = new OrmLiteConnectionFactory("Server=localhost;Port=5432;User Id=dms; Password=dms; Database=dms", PostgreSqlDialect.Provider);
container.Register<IDbConnectionFactory>(dbConnectionFactory);
container.RegisterAutoWiredAs<AppUserRepository, IAppUserRepository>();
}
}
protected void Application_Start()
{
new DmsAppHost().Init();
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BootstrapSupport.BootstrapBundleConfig.RegisterBundles(System.Web.Optimization.BundleTable.Bundles);
}
}
((사용 var에 dB = DbConnectionFactory.OpenDbConnection())) 나는 NullReferenceException이 무엇입니까.
개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
public class AppUserRepository : IAppUserRepository
{
public IDbConnectionFactory DbConnectionFactory { get; set; }
public AppUser GetAppUserByUsername(string username)
{
AppUser appUser;
using (var db = DbConnectionFactory.OpenDbConnection())
{
appUser = db.QuerySingle<AppUser>(new { username });
}
return appUser;
}
}
내 Connection에 이상이 있다고 생각하거나 Funq 작업을 수행하기 위해 올바른 작업을 수행하지 않습니까?
나는 또한 SqlLite에서 이것을 시도해 보았고 같은 문제가 발생했다. Funq가 내 DbConnectionFactory 인스턴스를 생성하지 않는 것 같습니다. –
여기서'DbConnectionFactory.OpenDbConnection()'을 호출하고 있습니다. 실제로 어디에서 '연결 생성 중'인지 알 수 없습니다. 여기에서 뭔가를 간과하고 있습니다. – MethodMan
global.asax의 Funq (IOC 컨테이너)가 처리해야합니다. 위의 파일. 적어도 그것은 내가 그것을 이해하는 방법입니다. –