.NET Core 3.1 SOAP 平台不支持错误 "Compiling JScript/CSharp scripts is not supported"
.NET Core 3.1 SOAP platform not supported error "Compiling JScript/CSharp scripts is not supported"
我正在使用 Amadeus 提供的 WSDL 文件 (wsdl.zip)。当尝试使用下面的代码调用服务方法时,它抛出一个 System.PlatformNotSupportedException 说“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;
}
这真的是工具还不支持的东西吗?
堆栈跟踪:
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
由于您已经将问题发布到 Github 存储库,我在这里只是为了将解决方案的快照分享给其他人。
Microsoft WCF Web 服务参考生成的类型有问题
供应商工具。
正如 shmao 所说,
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 to
typeof(ListViewRecordColumn[])
.
即更改 **:
/// <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;
}
}
收件人:
[System.Xml.Serialization.XmlArrayItemAttribute("columns", typeof(ListViewRecordColumn[]), IsNullable=false)]
我正在使用 Amadeus 提供的 WSDL 文件 (wsdl.zip)。当尝试使用下面的代码调用服务方法时,它抛出一个 System.PlatformNotSupportedException 说“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;
}
这真的是工具还不支持的东西吗?
堆栈跟踪:
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
由于您已经将问题发布到 Github 存储库,我在这里只是为了将解决方案的快照分享给其他人。
Microsoft WCF Web 服务参考生成的类型有问题
供应商工具。
正如 shmao 所说,
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[])
.
即更改 **:
/// <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;
}
}
收件人:
[System.Xml.Serialization.XmlArrayItemAttribute("columns", typeof(ListViewRecordColumn[]), IsNullable=false)]