Вызов API в приложении WPF не работает

#wpf #api

Вопрос:

Я новичок в WPF. Я клонировал это приложение с github и теперь пытаюсь его скомпилировать. Это выдает ошибку.

Может ли кто-нибудь, пожалуйста, помочь решить эту проблему?

Не удалось найти имя типа или пространства имен ‘SessionAgentApi’ (вам не хватает директивы using или ссылки на сборку?)

API SessionAgentApi находится Connected Services внутри приложения.

мой api

Когда я вижу папку api в своем проводнике файлов, я вижу, что внутри находятся эти файлы. xx.SessionAgentApi.LaunchMpegStreamerProcessResponse.datasource
configuration.svcinfo
configuration91.svcinfo
Reference.cs
Reference.svcmap
service1.wsdl
service1.xsd
service2.xsd

Я вызываю этот api внутри нижеприведенного класса внутри того же проекта.

 using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.IO;
using System.Diagnostics;
using System.Text;
using System.Threading;
using System.Reflection;
using System.Linq;
using System.Net.Http;

namespace xx
{
    public partial class UserSessionAgent: IDisposable
    {
        static readonly object lockObject = new object();     
     
        bool tryOpenApi(int timeoutMss = 3000)
        {           
                if (apiClient == null)
                    apiClient = new SessionAgentApi.ApiClient();
                try
                {
                    apiClient.Open();
                   ...
                }
                catch (Exception ex)
                {
                    Log.Warning2(ex);
                }
                apiClient.Abort();
                apiClient = null;
            }
           
            return false;
        }
        SessionAgentApi.ApiClient apiClient;
    }
}
    
 

Комментарии:

1. Итак, где определен этот класс — разве он не в проекте ? Это в отдельном пакете nuget ? На самом деле мы мало что можем сделать, чтобы помочь в этом — ошибка в значительной степени объясняет проблему…

2. @auburg, я вызываю api в одном из классов внутри того же проекта, где находится этот api.

3. «это приложение с github»? Какое приложение?

Ответ №1:

Похоже, у вас есть служба WCF, и вам нужно сгенерировать прокси-классы. Используйте svcutil. Запустите его в том же каталоге, что и ваш файл wsdl:

 svcutil /t code service1.wsdl