StructureMap初始化问题
本文关键字:问题 初始化 StructureMap | 更新日期: 2023-09-27 18:25:58
当前正在使用结构映射来注入transactionid,这是每次都需要创建的唯一Guid
x.For<ITransaction>()
.Use<Transaction>()
.Ctor<string>("transactionId").Is(Guid.NewGuid().ToString())
.Ctor<string>("transactionType").Is(settings["TransactionTypeValue"]);
在控制器中,ITransaction作为参数传递,并获取TransactionId。但是,无论何时调用操作方法,我都不会得到唯一的Guid。它是在加载应用程序时设置的,每次都会出现相同的值。如何在每次使用结构映射配置调用操作方法时生成唯一的Guid。
问题是,您只是在初始化容器时将值设置为相同。尝试设置为返回GUID的函数,如下所示:
x.For<ITransaction>()
.Use<Transaction>()
.Ctor<string>("transactionId").Is(() => Guid.NewGuid().ToString())
.Ctor<string>("transactionType").Is(settings["TransactionTypeValue"]);