Orleans 的依赖注入(版本 1.2.3)不起作用

Dependency Injection with Orleans (Version 1.2.3) not working

我已经弄乱了几个小时,但我就是无法让 DI 与 Orleans 一起工作。

文档 (Orleans - Depencency Injection) 状态:

首先你必须在服务器端配置中列出启动类型:

<?xml version="1.0" encoding="utf-8"?>
<OrleansConfiguration xmlns="urn:orleans">
    <Globals>
        <Startup Type="Services.Implementations.Startup, Services.Implementations" />

然后你必须写这样的启动class:

using System;
using Microsoft.Extensions.DependencyInjection;

namespace Services.Implementations
{
    public class Startup
    {
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            return services.BuildServiceProvider();
        }
    }

}

目前 ConfigureServices 方法没有什么特别的。请无视。

问题是从未调用该方法。

我正在使用 Orleans V1.2.3

有什么我遗漏的吗?

目前 Orleans 文档中有一个错误。 <Startup> 标签必须放入 <Defaults> 部分:

<?xml version="1.0" encoding="utf-8"?>
<OrleansConfiguration xmlns="urn:orleans">
    <Globals>
        ...
    </Globals>
    <Defaults>
        <Startup Type="Services.Implementations.Startup, Services.Implementations" />
    </Defaults>
</OrleansConfiguration>

然后一切正常。

我会向 Orleans 的家伙发送拉取请求以更正此问题。