StructureMap初始化问题

时间:2014-10-08 11:11:02

标签: c# structuremap

目前正在使用结构图注入transactionid,这是一个每次都需要创建的uniqie Guid

x.For<ITransaction>()
 .Use<Transaction>()
 .Ctor<string>("transactionId").Is(Guid.NewGuid().ToString())
 .Ctor<string>("transactionType").Is(settings["TransactionTypeValue"]);

在控制器中,ITransaction作为参数传递并获取TransactionId。 但是每当调用action方法时,我都没有得到唯一的Guid。 它在加载应用程序时全部设置,每次都会出现相同的值。 每次使用结构图配置调用操作方法时,如何生成唯一的Guid。

1 个答案:

答案 0 :(得分:0)

问题是,您只是在初始化容器时将值设置为相同。尝试设置为返回GUID的函数,如下所示:

x.For<ITransaction>()
.Use<Transaction>()
.Ctor<string>("transactionId").Is(() => Guid.NewGuid().ToString())
.Ctor<string>("transactionType").Is(settings["TransactionTypeValue"]);