使用 StructureMap 4,而我是 C# 新手,我想知道为什么会出现编译错误:
var di = new Container(_ =>
{
// (1) compile error: CS1503: Argument 1: cannot convert from 'StructureMap.IContext' to '...ITest'
_.For<Func<ITest, ITestRunner>>().Use( arg => new TestRunner(arg) );
// (2) compiles OK
Func<ITest, ITestRunner> f1 = arg => new TestRunner(arg);
_.For<Func<ITest, ITestRunner>>().Use( f1 );
// (3) with cast compiles ok
_.For<Func<ITest, ITestRunner>>().Use( (Func<ITest, ITestRunner>)( arg => new TestRunner(arg)));
});
是否有一个紧凑的语法,我不需要f1
变量 (2) 并且没有重复类型 (3) 的演员表吗?