我正在编写一个SoapCore
网络服务,.NET Core 5.0
并且我已经成功地能够通过执行请求SOAPUI
并获取有效的响应。我唯一不喜欢的是它在休息消息中添加不需要的前缀。例如,在此响应中:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<s:Body>
<getMeterIntervalDataByTimeSliceResponse xmlns="http://tempuri.org/">
<getMeterIntervalDataByTimeSliceResult xmlns:d4p1="http://schemas.datacontract.org/2004/07/MeterDataWebService.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<d4p1:AccountId>1234567890</d4p1:AccountId>
<d4p1:ID>0</d4p1:ID>
<d4p1:IntervalEndTime>2020-12-22T15:30:57.3705724-05:00</d4p1:IntervalEndTime>
<d4p1:IntervalLengthInSeconds>PT5M</d4p1:IntervalLengthInSeconds>
<d4p1:Load>2345.8010350836185</d4p1:Load>
<d4p1:MeterChannel>1</d4p1:MeterChannel>
<d4p1:TimeZone>UT</d4p1:TimeZone>
<d4p1:UnitOfMeasure>KM</d4p1:UnitOfMeasure>
<d4p1:UtcOffset>0</d4p1:UtcOffset>
</getMeterIntervalDataByTimeSliceResult>
</getMeterIntervalDataByTimeSliceResponse>
</s:Body>
</s:Envelope>
Run Code Online (Sandbox Code Playgroud)
如何去掉“d4p1”前缀?
我想到了。那是在我的Startup.cs
班级里。
app.UseSoapEndpoint<ISampleService>("/Service.asmx", new BasicHttpBindingg(), SoapSerializer.XmlSerializer);
Run Code Online (Sandbox Code Playgroud)
我忘记添加该SoapSerializer.XmlSerializer
部分了。