public class ConsoleRegistry : Registry
{
public ConsoleRegistry()
{
Scan(scan =>
{
scan.TheCallingAssembly();
scan.WithDefaultConventions();
});
For<IJobFactory>().Use<StructureMapJobFactory>();
For<ISchedulerFactory>().Use(ctx => new StdSchedulerFactory());
/*For<IScheduler>().Use(async delegate (IContext ctx)
{
var scheduler = await ctx.GetInstance<ISchedulerFactory>().GetScheduler();
scheduler.JobFactory = ctx.GetInstance<IJobFactory>();
return scheduler;
});*/
ForSingletonOf<IScheduler>().Use(ctx =>
{
IScheduler scheduler = ctx.GetInstance<ISchedulerFactory>().GetScheduler().Result;
scheduler.JobFactory = ctx.GetInstance<IJobFactory>();
return scheduler;
});
}
最后一个有什么问题ForSingletonOf<IScheduler>()...
?
我收到这个错误
Error CS0832 An expression tree may not contain an assignment operator
最佳答案
这听起来像是库实现中某处的错误。由于该项目已“停用”,您不太可能获得修复,因此请尝试通过引入辅助方法来解决它:
private static IScheduler MakeScheduler(IContext ctx) {
... // the code from your lambda goes here
}
...
ForSingletonOf<IScheduler>().Use(ctx => MakeScheduler(ctx));
关于c# - 错误 CS0832 表达式树不能包含赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51575377/