我下载了ASP Boilerplate模板,我试图禁用某些动态WebAPI的创建。我在https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API阅读了文档,但在模板中找不到禁用它的位置。我使用的是.NET Core + Angular4模板。
答案 0 :(得分:3)
您可以使用属性 [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();
答案 1 :(得分:0)
我正在使用使用EF Core的apsnetboiler零模板。 Core使用的配置模块略有不同:
https://aspnetboilerplate.com/Pages/Documents/AspNet-Core#application-services-as-controllers
我想使用动态创建的实体CRUD方法,但不想公开delete和update方法。因此,我只是在应用程序服务类中覆盖了它们,并将[RemoteService(False)]属性添加到了覆盖的方法中。这样可以防止它们在api中被泛化。