Как получить маршрутизацию службы приложений ABP к нескольким реализациям? - PullRequest
0 голосов
/ 10 сентября 2018

Я использую ASP.NET Boilerplate (ABP).

Я хочу иметь универсальную службу приложений, которая реализована несколькими способами. Читая документацию, кажется, что мне нужно создать интерфейс для каждого класса. Я хочу иметь один общий интерфейс и иметь возможность маршрутизировать его к реализованным классам. Есть ли способ сделать это?

public interface IMyAppService : IApplicationService
{
    Task<DataTableCollection> PostData(string action, string data);
}

public class myclass1 : IMyAppService
{
    public async Task<DataTableCollection> PostData(string action, string data)
    {
        ...
    }
}

public class myclass2 : IMyAppService
{
    public async Task<DataTableCollection> PostData(string action, string data)
    {
        ...
    }
}

И затем в моем приложении доступ к ним осуществляется через маршруты, такие как / app / myclass1 и / app / myclass2 .

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Если вы делаете это для обобщения операций CRUD, такой интерфейс уже есть AsyncCrudAppService

public class TaskAppService : AsyncCrudAppService<Task, TaskDto>, ITaskAppService
{
    public TaskAppService(IRepository<Task> repository) 
        : base(repository)
    {

    }
}

https://aspnetboilerplate.com/Pages/Documents/Application-Services#crudappservice-and-asynccrudappservice-classes

0 голосов
/ 11 сентября 2018

Это уже должно работать. Интерфейс для каждого класса рекомендуется (хотя и не обязательно) для внедрения зависимостей, но здесь это не имеет значения.

Вам просто нужно реализовать интерфейс IApplicationService .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...