我有一个带有构造函数的类,它接受我需要向Autofac注册的Func参数。
以下是类的定义方式:
public class MyClass : IMyClass
{
private Func<Task<IProvider<string, object>>> _provider;
public MyClass(Func<Task<IProvider<string, object>>> provider)
{
_provider = provider;
}
...
}
我如何用Autofac注册这个课程?
我尝试过以下方法:
builder.RegisterType<MyClass>()
.As<IMyClass>()
.InstancePerLifetimeScope()
.WithParameter("provider", MyProviderFunc);
但这会导致以下编译错误:
cannot convert from 'method group' to 'object'
这是MyProviderFunc的定义:
private static Task<ICRUDProvider<string, object>> MyProviderFunc()
{
...
}
您需要将方法组显式转换为委托类型(否则,编译器不知道您想要哪个委托):
.WithParameter("provider", new Func<Task<IProvider<string, object>>>(MyProviderFunc));