I am using a WSDL file (wsdl.zip) provided by Amadeus. When trying to call the service method using the below code, it threw a System.PlatformNotSupportedException saying "Compiling JScript/CSharp scripts is not supported
"
public async Task<Fare_MasterPricerTravelBoardSearchResponse> SearchFlight(Session session,
Fare_MasterPricerTravelBoardSearch searchData)
{
var _client = new AmadeusWebServicesPTClient();
var result = await _client.Fare_MasterPricerTravelBoardSearchAsync(session, searchData);
return result;
}
Is this really something that is not supported by the tool yet?
Stack Trace:
at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location)
at System.Xml.Serialization.XmlSerializer.GetSerializersFromCache(XmlMapping[] mappings, Type type)
at System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Type type)
at System.ServiceModel.Description.XmlSerializerHelper.FromMappingsViaReflection(XmlMapping[] mappings, Type type)
at System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.SerializerGenerationContext.GenerateSerializers()
at System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.SerializerGenerationContext.GetSerializer(Int32 handle)
at System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.SerializerStub.GetSerializer()
at System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.MessageInfo.get_HeaderSerializer()
at System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.AddHeadersToMessage(Message message, MessageDescription messageDescription, Object[] parameters, Boolean isRequest)
at System.ServiceModel.Dispatcher.OperationFormatter.SerializeRequest(MessageVersion messageVersion, Object[] parameters)
at System.ServiceModel.Dispatcher.ProxyOperationRuntime.BeforeRequest(ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.PrepareCall(ProxyOperationRuntime operation, Boolean oneway, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.Begin()
at System.ServiceModel.Channels.ServiceChannel.BeginCall(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, TimeSpan timeout, AsyncCallback callback, Object asyncState)
at System.ServiceModel.Channels.ServiceChannel.BeginCall(ServiceChannel channel, ProxyOperationRuntime operation, Object[] ins, AsyncCallback callback, Object asyncState)
at System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator.CreateGenericTask(ServiceChannel channel, ProxyOperationRuntime operation, Object[] inputParameters)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at SkywayTravel.Amadeus.Air.MasterPricerTravelBoardSearchClient.<SearchFlight>d__1.MoveNext() in E:\MobileAppTelligence\Projects\SkywayTravel\SkywayTravel.Amadeus.Air\MasterPricerTravelBoardSearchClient.cs:line 29
As you have already posted the issue to Github repository, I am here just for sharing the snapshot of the solution for others.
There is something wrong with the generated type by Microsoft WCF Web Service Reference
Provider tool.
As shmao said,
The property is a 2-dimensional array, but the XmlArrayItemAttribute specified the item type as
typeof(ListViewRecordColumn)
. To work around the issue, we can change the item type totypeof(ListViewRecordColumn[])
.
i.e. Change **:
/// <remarks/>
[System.Xml.Serialization.XmlArrayAttribute(Order=5)]
** [System.Xml.Serialization.XmlArrayItemAttribute("columns", typeof(ListViewRecordColumn), IsNullable=false)]
public ListViewRecordColumn[][] records
{
get
{
return this.recordsField;
}
set
{
this.recordsField = value;
}
}
To:
[System.Xml.Serialization.XmlArrayItemAttribute("columns", typeof(ListViewRecordColumn[]), IsNullable=false)]
For details,
https://github.com/dotnet/wcf/issues/2219
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With