我在ASP.NET MVC网站上有以下代码:

x.For<AccountController>().TheDefault.Is.ConstructedBy(() => new AccountController());


这段代码发出了一个警告,看起来很容易解释,但是由于某种原因,当我使用“ Use”方法时,它似乎不起作用。我知道我做错了事,希望能有所帮助。

警告是:

警告1'StructureMap.Configuration.DSL.Expressions.CreatePluginFamilyExpression.TheDefault'已过时:'“首选Use()方法”

谢谢。

最佳答案

如果您在XMLDoc中查看“使用”方法的第三个重载,它会说:


速记
Default.IsThis(@object)


因此,只需这样做:

For<AccountController>().Use(() => new AccountController());


尽管我不确定这是什么意思(在某些情况下需要具体内容时注入具体内容),除非这只是一个示例,而您实际上正在做其他事情。

通常,对于MVC控制器,您将创建一个ControllerFactory-我没有看到“明确”注入具体Controller的需要。

关于asp.net - 结构图中的默认构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3928692/

10-10 21:50