Я начал использовать ServiceStack сегодня. Итак, дайте мне знать, если я делаю что-то совершенно неправильное.Инъекция IDbConnectionFactory в класс службы
Я пытаюсь внедрить Db в моем классе обслуживания, для которого я использую этот код
[TestFixture]
public class UserServiceTests
{
private UserService service;
[SetUp]
public void SetUp()
{
var appHost = new BasicAppHost();
var dbFactory = new OrmLiteConnectionFactory(":memory:", false, SqliteDialect.Provider);
appHost.Container.Register<IDbConnectionFactory>(dbFactory);
service = new UserService();
service.SetAppHost(appHost);
}
[Test]
public void Calling_post_method_with_valid_User_saves_it_in_database()
{
var User = new User { Name = "Acme Limited" };
var id = service.Post(User);
Assert.AreEqual(1, id);
}
}
Есть две проблемы: 1) Я получаю исключение:
Could not load file or assembly 'System.Data.SQLite, Version=1.0.82.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
ли есть простой способ исправить это? И действительно ли нам нужен SQLite для тестирования, есть ли доступный объект Fake?
2) Компилятор предупреждает о - service.SetAppHost (appHost). SetAppHost лишен. Как я могу ввести Db в класс обслуживания без использования SetAppHost?
Любые идеи?
Спасибо! С OrmLite.Sqlite, NuGet установлена версия 1.0.84. Но OrmLite, вероятно, искал версию 1.0.82. Обновлен до требуемой версии, чтобы заставить ее работать. – user356247