Я пытаюсь перейти с StructureMap на Lamar (4.1.0) в последней версии do tnet core (3.1)
Этот проект работал до перехода на Lamar, но многое изменилось. я теряю прикосновение.
Вопрос?
После сканирования, как я могу создать экземпляр объекта с конструктором объекта, который уже был проверен. Я понимаю, что StructureMap немного отличается, но этот код работал ранее.
Код ниже:
Startup.cs (попытка нового Ламара)
var container = new Container(cfg =>
{
cfg.Scan(scanner =>
{
scanner.AssembliesAndExecutablesFromApplicationBaseDirectory(a => a.FullName.Contains("Project.Name.Here"));
scanner.WithDefaultConventions();
scanner.SingleImplementationsOfInterface();
});
cfg.For<IServerInformationDataAccess>()
.Use(new ServerInformationDataAccess(Configuration.GetConnectionString(DbConnectionKey), Container.GetInstance<IMapper>()));
Startup.cs (старый, который работал)
Новый Lamar (4.1) больше не позволяет мне создавать без параметров
Перепробовал все экземпляры но они не работали ... так вот я
var container = new Container();
container.Configure(cfg =>
{
cfg.Scan(s =>
{
s.AssembliesAndExecutablesFromApplicationBaseDirectory(a => a.FullName.Contains("Project.Name.Here"));
s.WithDefaultConventions();
s.SingleImplementationsOfInterface();
});
cfg.For<IServerInformationDataAccess>()
.Use<ServerInformationDataAccess>(sida => new ServerInformationDataAccess(Configuration.GetConnectionString(DbConnectionKey), container.GetInstance<IMapper>()));
Program.cs
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseLamar()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}