c# - 错误 CS0832 表达式树不能包含赋值运算符

标签 c# structuremap4

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/

相关文章:

.net - StructureMap GetAllInstances 在需要多个实例时返回一个实例

c# - StructureMap 不扫描当前文件夹中的程序集

c# - 如何使用 StructureMap (4.0) 将依赖项注入(inject)自定义属性? MVC5项目

c# - 退出屏幕监视器的事件(使用 WPF)

c# - 启动异步方法时 Hook

c# - 通用显式转换失败 C#

c# - 将声音输出到设备上的特定 channel

c# - 多少空检查就足够了?