这是基于vue-vben-admin 模板适用于abp Vnext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
colin 96a41314bf upgrade abp framework to 8.2.0 1 year ago
..
LINGYUN.Abp.Dapr upgrade abp framework to 8.2.0 1 year ago
LINGYUN.Abp.Dapr.Actors upgrade abp framework to 8.2.0 1 year ago
LINGYUN.Abp.Dapr.Actors.AspNetCore upgrade abp framework to 8.2.0 1 year ago
LINGYUN.Abp.Dapr.Actors.AspNetCore.Wrapper upgrade abp framework to 8.2.0 1 year ago
LINGYUN.Abp.Dapr.Client upgrade abp framework to 8.2.0 1 year ago
LINGYUN.Abp.Dapr.Client.Wrapper upgrade abp framework to 8.2.0 1 year ago
LINGYUN.Abp.DistributedLocking.Dapr upgrade abp framework to 8.2.0 1 year ago
README.md upgrade(abp): upgrade abp framework to 7.4.0 2 years ago

README.md

Client | Dapr.Actors 文档

Dapr.Actors 集成

配置使用

项目设计与 Volo.Abp.Http.Client 类似

1、接口定义


// 定义在接口上的RemoteService.Name会被作为Actor的名称注册到Dapr
[RemoteService(Name = "System")]
public interface ISystemActor : IActor
{
    Task<string> GetAsync();
}

public class SystemActorInterfaceModule : AbpModule
{

}

2、服务端

引用 LINGYUN.Abp.Dapr.Actors.AspNetCore

  • 实现接口

public class SystemActor : Actor, ISystemActor 
{
    public Task<string> GetAsync() 
    {
        retuen Task.FromResult("System");
    }
}

  • 创建模块

// 模块会自动搜索实现了IActor的服务,注册为Dapr的Actors
[DependsOn(
        typeof(AbpDaprActorsAspNetCoreModule))]
public class SystemActorServerModule : AbpModule
{

}

  • 发布到Dapr
# --app-port .net程序映射端口
# -H 对外暴露 http 监听端口
# -G 对外暴露 grpc 监听端口
dapr run --app-id myapp --app-port 5000 -H 50000 -G 40001 -- dotnet run

3、客户端

引用 LINGYUN.Abp.Dapr.Actors

  • 配置文件 appsettings.json

{
    "RemoteServices": {
        "Shop": {
            "BaseUrl": "http://127.0.0.1:50000"
        }
    }
}

  • 客户端代码

// 模块依赖
[DependsOn(
        typeof(AbpDaprActorsModule))]
public class SystemActorClientModule : AbpModule
{
    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        // 注册代理类似于 Volo.Abp.Http.Client 模块
        context.Services.AddDaprActorProxies(
            typeof(SystemActorInterfaceModule).Assembly, // 搜索 SystemActorInterfaceModule 模块下的IActor定义
            "Shop"
        );
    }
}

// 调用方法,直接依赖注入即可
public class InvokeClass
{
    private readonly ISystemActor _systemActor;

    public InvokeClass(ISystemActor systemActor)
    {
        _systemActor = systemActor; 
    }

    public async Task InvokeAsync()
    {
        await _systemActor.GetAsync();
    }
}

其他