Потребляйте 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 требует строки массива и вашей передачи строки