RichardvTol Ответов: 1

Потребляйте SOAP API в C#


Я пытаюсь использовать SOAP api в C#. Код компилируется, но когда я его запускаю, появляется следующее сообщение:

<pre>System.InvalidOperationException
  HResult=0x80131509
  Message=Unable to generate a temporary class (result=1).
error CS0029: Cannot implicitly convert type 'string' to 'string[]'

  Source=System.Xml
  StackTrace:
   at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
   at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
   at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
   at System.Xml.Serialization.XmlSerializer.GetSerializersFromCache(XmlMapping[] mappings, Type type)
   at System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Type type)
   at System.Web.Services.Protocols.SoapClientType..ctor(Type type)
   at System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
   at SOAPapi.Textkernel.SearchServiceService..ctor() in C:\Users\VanTol\Documents\Projects\CSharp\SOAPapi\SOAPapi\Web References\Textkernel\Reference.cs:line 45
   at SOAPapi.Program.Main(String[] args) in C:\Users\VanTol\Documents\Projects\CSharp\SOAPapi\SOAPapi\Program.cs:line 23


Я проверил все типы параметров, и в IDE они верны.У кого-нибудь есть идея, что происходит не так?

Ошибка возникает в кодовой строке:
SearchServiceService client = new SearchServiceService();


Что я уже пробовал:

Я создал Консольный проект C# и добавил API в качестве веб-ссылки.
Это wsdl: href="https://staging.textkernel.nl/SearchBox/soap/search?wsdl

Это и есть код:
static void Main(string[] args)
        {
            string ENVIRONMENT = "my_environment";
            string PASSWORD = "myPassword";
            string[] ACCESSROLES = new string[1];
            string LANGUAGE;
            accessOptions ACCESSOPTIONS = new accessOptions();
            searchRequest SEARCHREQUEST = new searchRequest();
            searchResult SEARCHRESULT = new searchResult();
            compositeMetadata METADATA = new compositeMetadata();
            userOptions USEROPTIONS = new userOptions();
            SearchServiceService client = new SearchServiceService();
            


            ACCESSROLES[0] = "all";
            LANGUAGE = "NL";
            
            METADATA = client.getMetadata(ENVIRONMENT, PASSWORD, ACCESSOPTIONS, LANGUAGE, USEROPTIONS, ACCESSROLES);

            Console.ReadKey();
        }

vivvicks

один из параметров из метода API требует строки массива и вашей передачи строки

1 Ответов

Рейтинг:
0

RichardvTol

Я нашел ответ. Это проблема Microsoft Visual Studio. Ссылка, созданная Visual Studio, содержит ошибку.

Подробности смотрите здесь: https://developer.salesforce.com/forums/?id=906F0000000AiPEIA0-да.