繁体   English   中英

我可以使用StructureMap注入一些字符串(例如配置值)到ASP.NET MVC控制器中吗?

[英]Can I inject into an ASP.NET MVC controller, some strings (eg. configuration values) using StructureMap?

我正在使用structureMap作为ASP.NET MVC网站的IoC / DI。 效果很好。

通常,我的控制器会传入Interfaces和structureMap +贪婪的构造函数==效果很好。

例如。

public void FooController : Controller
{
    public FooController(IPewPew pewPew) { .. }
}

等等..

但是..我的一个控制器(只有em的一个)想传递两个字符串。

例如..

public void FooController2 : Controller
{
    public FooController2(IPewPew pewPew, string aaa, string bbb) { .. }
}

有什么办法可以用StructureMap做到这一点? 有没有办法说,当列出一个字符串“ aaa”时,则使用此值=> "hi!";

我真的不想将所有这些字符串放入带有接口的具体类中。

就像我想说些类似的话。

For<string>().WithName("aaa").Use<string>().WithValue("hi");

干杯!

这对我有用:

ObjectFactory.Configure( x=>
{
    x.For<FooController2>()
     .Use<FooController2>()
     .Ctor<string>("aaa")
     .Is("hi");
});

您可以注册Func<T>委托,该委托使您可以进行类型安全的注册。

container.Configure(r => r.For<FooController2>().Use(() =>
{
    var pewPew = container.GetInstance<IPewPew>();  
    return new FooController2(pewPew, "someValue", "anotherValue");
}));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM