0

我下载了 ASP Boilerplate 模板,并试图禁用某些动态 WebAPI 的创建。我阅读了https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API上的文档, 但我无法在模板中找到禁用此功能的位置。我正在使用 NET Core + Angular4 模板。

4

2 回答 2

7

您可以使用属性[RemoteService(false)]来禁用创建应用程序服务的动态 Web api。您也可以在应用程序服务的方法上使用此属性。

 [RemoteService(false)]
 public interface IRoleAppService : IAsyncCrudAppService<RoleDto, int, PagedResultRequestDto, CreateRoleDto, RoleDto>
 {
        Task<ListResultDto<PermissionDto>> GetAllPermissions();
 }

https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API#enabledisable


虽然 [RemoteService] 是禁用它的最简单方法,但您可以使用以下代码进行高级操作。

Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder
    .ForAll<IApplicationService>(Assembly.GetExecutingAssembly(), "app")
    .ForMethods(builder =>
    {
        if (builder.Method.IsDefined(typeof(MyIgnoreApiAttribute)))
        {
            builder.DontCreate = true;
        }
    })
    .Build();
于 2017-08-14T07:00:43.447 回答
0

我正在使用使用 EF Core 的 aspnetzero 模板。Core 使用了一个稍微不同的配置模块,在这里可以找到:

https://aspnetboilerplate.com/Pages/Documents/AspNet-Core#application-services-as-controllers

我想使用动态创建的实体 CRUD 方法,但不想公开删除和更新方法。所以,我只是在应用程序服务类中覆盖它们并将[RemoteService(False)]属性添加到覆盖的方法中。这可以防止它们在 API 中生成。

于 2018-09-12T13:44:29.507 回答