В нашем проекте .NET Core у нас есть ссылки на сервисы для SOAP API. Но поскольку у нас их много, мы реализовали универсальный метод, который вызывает метод в SoapClient, так что мы можем просто вызвать:
var response = await _service.CallMethod<ClientResponse>(request, "SaveClientAsync");
Однако в этом случае мы должны знать имя метода (здесь это «SaveClientAsync»), в то время как лучше иметь что-то вроде client.SaveClientAsync, чтобы я писал «client», а затем нажимал «.» и список свойств отображается в раскрывающемся меню VS, что позволяет мне выбрать имя метода и передать его дальше.
Сначала я подумал о enum, но мне придется его поддерживать, что не является опцией, но потом я наткнулся на ExpandoObject, чтобы я мог создать динамический объект со всеми именами методов в качестве свойств.
Теперь мне нужно расширить список свойств объекта, нажав «.» в Visual Studio.
Есть идеи?