Как передать параметр интерфейса для вызова метода службы? - PullRequest
0 голосов
/ 29 марта 2020

У меня есть библиотека проекта, которая играет роль службы. Он состоит из:

  1. Интерфейс:
public interface IManageApplicationServiceInterface : IProcessQ<IManageApplicationServiceEntity>
{
    void createMyApp(IManageApplicationServiceEntity serviceEntity);
}
Класс обслуживания, который реализует интерфейс выше:
[Export(typeof(IProcessQ))]
[ProcessMetaData("My API Service Interface", "F756B100-5B85-4877-9EF6-BB53727371BB",PluginType.ServiceInterface, typeof(IManageApplicationServiceEntity))]
public class ManageApplicationServiceInterface : IManageApplicationServiceInterface
{
    public void Execute(IEntity entity)
    {
        throw new NotImplementedException();
    }
    public void Execute(IManageApplicationServiceEntity serviceEntity)
    {
        throw new NotImplementedException();
    }
    public void createMyApp(IManageApplicationServiceEntity applicationData)
    {
        try
        {
            Logger.Debug("Create may app method - Starts");
            //build something to make an api call 
            //apiURL
            //create a JObject with adding 2 properties
            //prepare a httpContent
            var content = new StringContent(jsonCreateApp.ToString(Newtonsoft.Json.Formatting.None), Encoding.UTF8, "application/json");
            //add default request headers for httpClient object
            //get client response
            var clientResponse = httpClient.PostAsync(apiURL, content).Result;
            //If the API call is success then read the response otherwise throw exception
                if (clientResponse.IsSuccessStatusCode)
                {
                    var apiResult = Newtonsoft.Json.Linq.JObject.Parse(clientResponse.Content.ReadAsStringAsync().Result);
                    Logger.Debug("Create App method - Reading response");

                    response.Add("id", apiResult["id"].ToString());
                    response.Add("createMyAppETagID", removeDoubleQuote(clientResponse.Headers.ETag.ToString()));
                    response.Add("responseMyApp", apiResult.ToString());
                }
                else
                {
                    Logger.Debug("Create App method Error - Status Code" + clientResponse.StatusCode + "ReasonPhrase - " + clientResponse.ReasonPhrase);
                    throw new ArgumentException("Create App method Error - Status Code" + clientResponse.StatusCode + "ReasonPhrase - " + clientResponse.ReasonPhrase);
                }
                Logger.Debug("Create My App method - Ends");
                return response;
            Logger.Debug("Create create My App - Ends");
        }
        catch (Exception ex)
        {
            Logger.Error("Expection in Create My App method - " + ex);
            throw ex;
        }
    }    
}

Я собираюсь вызвать метод веб-службы createMyApp из веб-консоли или веб-приложения. Я использовал веб-приложение для вызова его в Page_Load

IManageApplicationServiceEntity manageApplicationServiceInterface;
ds.createMyApp(manageApplicationServiceInterface);

При наведении курсора на ds.createMyApp Visual Studio говорит: «Front End должен предоставлять входные данные json». Нужно ли ему JObject и преобразовать объект в тип IManageApplicationServiceEntity перед его передачей? А при наведении курсора на переменную интерфейса он говорит: «Использована неназначенная локальная переменная manageApplicationServiceInterface»

Как подготовить параметр интерфейса для передачи в метод сервиса createMyApp для его вызова? Надеюсь получить помощь. Многие ценят!

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