Ich möchte mit StructureMap einen grundlegenden IoC von Ormlite erstellen, aber ich mache etwas falsch.Einrichten von OrmLite mit StructureMap
Am Standort OrmLite sie geben ein einfaches Beispiel, wie es zu injizieren:
container.Register<IDbConnectionFactory>(c =>
OrmLiteConnectionFactory(":memory:", SqliteDialect.Provider)); //InMemory Sqlite DB
So will ich es mit StructureMap in meine neu erstellten WebAPI2 Anwendung verwenden.
Ich habe StructureMap.WebAPI2 nuget installiert und ich habe die folgende Konfiguration:
container.Configure(x => {
x.For<IAuthenticationService>().Use<AuthenticationService>();
x.For<IDbConnectionFactory>()
.Use<OrmLiteConnectionFactory>().Ctor<string>("connectionString").Is("Server=(localdb)\v11.0;Integrated Security=true;")
.Ctor<IOrmLiteDialectProvider>("dialectProvider").Is(SqlServerOrmLiteDialectProvider.Instance);
});
Und in diesem Szenario IAuthenticationServer normalerweise instanziert wird. Aber wenn ich versuche, DbConnection zuzugreifen ist es nicht gespritzt und es ist null
public IDbConnectionFactory DbFactory { get; set; } //injected by IOC
IDbConnection db;
IDbConnection Db
{
get
{
return db ?? (db = DbFactory.Open());
}
}
Das ist die Art, wie ich versuche, db zuzugreifen. Und in Getter ist DbFactory null. Wie kann ich das beheben?