实例介绍
SoapCore
SOAP协议中间件适用于ASP.NET Core。基于Microsoft文章:Custom ASP.NET Core Middleware Example。支持ref\out参数、异常处理。与传统的SOAP\WCF客户端兼容。
有两种不同的方法将SoapCore添加到您的ASP.NET Core网站中。如果您正在使用启用了端点路由的ASP.NET Core 3.1或更高版本(默认情况下):
在Startup.cs中:
public void ConfigureServices(IServiceCollection services) { services.AddSoapCore(); services.TryAddSingleton<ServiceContractImpl>(); services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.UseSoapEndpoint<ServiceContractImpl>(opt => { opt.Path = "/ServicePath.asmx", opt.SoapSerializer = SoapSerializer.DataContractSerializer }); }); }
【实例截图】
【核心代码】
文件清单
└── SoapCore-18cb2db305df1a219e85c61bcd8949324fdf6c70
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── samples
│ ├── Client
│ │ ├── Client.csproj
│ │ └── Program.cs
│ ├── Models
│ │ ├── ComplexModelInput.cs
│ │ ├── ComplexModelResponse.cs
│ │ ├── ComplexReturnModel.cs
│ │ ├── ISampleService.cs
│ │ └── Models.csproj
│ ├── Sample.sln
│ └── Server
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── SampleService.cs
│ ├── Server.csproj
│ └── Startup.cs
└── src
├── Directory.Build.props
├── global.json
├── logo.png
├── SoapCore
│ ├── CachedXmlSerializer.cs
│ ├── CustomMessage.cs
│ ├── DefaultEncodings.cs
│ ├── DefaultFaultExceptionTransformer.cs
│ ├── DefaultOperationInvoker.cs
│ ├── DocumentationWriter
│ │ ├── SoapBinding.cs
│ │ ├── SoapDefinition.cs
│ │ ├── SoapMessage.cs
│ │ ├── SoapMethods.cs
│ │ ├── SoapPortType.cs
│ │ ├── SoapService.cs
│ │ ├── SoapShared.cs
│ │ └── SoapTypes.cs
│ ├── EnvelopeVersionExtentions.cs
│ ├── Extensibility
│ │ ├── AuthorizeOperationMessageProcessor.cs
│ │ ├── ExceptionTransformer.cs
│ │ ├── IAsyncMessageFilter.cs
│ │ ├── IFaultExceptionTransformer.cs
│ │ ├── IMessageFilter.cs
│ │ ├── IMessageInspector2.cs
│ │ ├── IMessageInspector.cs
│ │ ├── IModelBindingFilter.cs
│ │ ├── IOperationInvoker.cs
│ │ ├── IServiceOperationTuner.cs
│ │ ├── ISoapMessageProcessor.cs
│ │ └── ISoapModelBounder.cs
│ ├── FaultBodyWriter.cs
│ ├── HeadersHelper.cs
│ ├── MessageEncoder
│ │ ├── Requires.cs
│ │ ├── SoapMessageEncoder.cs
│ │ ├── SoapMessageEncoderDefaults.cs
│ │ └── Verify.cs
│ ├── MessageFaultBodyWriter.cs
│ ├── Meta
│ │ ├── BindingExtensions.cs
│ │ ├── BodyWriterExtensions.cs
│ │ ├── ClrTypeResolver.cs
│ │ ├── MetaBodyWriter.cs
│ │ ├── MetaFromFile.cs
│ │ ├── MetaMessage.cs
│ │ ├── MetaWCFBodyWriter.cs
│ │ ├── SoapBindingInfo.cs
│ │ └── TypeToBuild.cs
│ ├── Namespaces.cs
│ ├── ObsoleteMessageFilter.cs
│ ├── ObsoleteMessageInspector.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── launchSettings.json
│ ├── ReflectionExtensions.cs
│ ├── SerializerHelper.cs
│ ├── ServiceBodyWriter.cs
│ ├── ServiceModel
│ │ ├── ContractDescription.cs
│ │ ├── DataMemberDescription.cs
│ │ ├── OperationDescription.cs
│ │ ├── ReturnChoice.cs
│ │ ├── ServiceDescription.cs
│ │ ├── SoapMethodParameterDirection.cs
│ │ └── SoapMethodParameterInfo.cs
│ ├── SoapCoreBufferManager.cs
│ ├── SoapCore.csproj
│ ├── SoapCoreOptions.cs
│ ├── SoapCore.snk
│ ├── SoapEncoderOptions.cs
│ ├── SoapEndpointExtensions.cs
│ ├── SoapEndpointMiddleware.cs
│ ├── SoapOptions.cs
│ ├── SoapSerializer.cs
│ ├── stylecop.json
│ ├── TrailingServicePathTuner.cs
│ ├── TypesComparer.cs
│ ├── WebServiceWSDLMapping.cs
│ ├── WSDLFileOptions.cs
│ ├── WsMessageFilter.cs
│ ├── WsUsernameToken.cs
│ └── XmlSerializerExtensions.cs
├── SoapCore.Benchmark
│ ├── PingService.cs
│ ├── Program.cs
│ ├── SoapCore.Benchmark.csproj
│ └── Startup.cs
├── SoapCore.ruleset
├── SoapCore.sln
└── SoapCore.Tests
├── ActionFilter
│ ├── ActionFilterTests.cs
│ └── TestActionFilter.cs
├── FaultExceptionTransformer
│ ├── FaultExceptionTransformerTests.cs
│ ├── Startup.cs
│ ├── TestFault.cs
│ └── TestFaultExceptionTransformer.cs
├── IntegrationTests.cs
├── InvalidXMLTests.cs
├── ITestService.cs
├── MessageContract
│ ├── Models
│ │ ├── IArrayOfArrayOfByteService.cs
│ │ ├── IArrayOfIntService.cs
│ │ ├── IServiceWithMessageContractComplexNotWrapped.cs
│ │ ├── IServiceWithMessageContract.cs
│ │ ├── IServiceWithMessageContractNotWrapped.cs
│ │ ├── IServiceWithMessageContractWrapped.cs
│ │ └── IStartupConfiguration.cs
│ ├── RawRequestSoap11Tests.cs
│ ├── Startup.cs
│ ├── TestServiceComplexNotWrapped.cs
│ ├── TestService.cs
│ ├── TestServiceNotWrapped.cs
│ └── TestServiceWrapped.cs
├── MessageFilter
│ ├── RawMessageFilterTests.cs
│ ├── Startup.cs
│ └── WsMessageFilterTests.cs
├── MessageInspector
│ ├── ClientMessageInspector.cs
│ ├── CustomHeadersEndpointBehavior.cs
│ ├── MessageInspectorMock.cs
│ ├── MessageInspectorTests.cs
│ └── Startup.cs
├── MessageInspectors
│ ├── InspectorStyle.cs
│ ├── MessageInspector
│ │ ├── MessageInspectorMock.cs
│ │ └── MessageInspectorTests.cs
│ ├── MessageInspector2
│ │ ├── MessageInspector2Mock.cs
│ │ └── MessageInspector2Tests.cs
│ └── Startup.cs
├── Model
│ ├── ComplexInheritanceModelInputA.cs
│ ├── ComplexInheritanceModelInputBase.cs
│ ├── ComplexInheritanceModelInputB.cs
│ ├── ComplexModelInput.cs
│ ├── ComplexModelInputForModelBindingFilter.cs
│ ├── ComplexTreeModelInput.cs
│ ├── EmptyMembers.cs
│ ├── FaultDetail.cs
│ ├── IComplexTreeModelInput.cs
│ ├── MessageContractRequestComplexNotWrapped.cs
│ ├── MessageContractRequest.cs
│ ├── MessageContractRequestEmpty.cs
│ ├── MessageContractRequestNotWrapped.cs
│ ├── MessageContractResponse.cs
│ └── MessageContractResponseNotWrapped.cs
├── ModelBindingFilter
│ ├── ModelBindingFilterTests.cs
│ └── TestModelBindingFilter.cs
├── NativeAuthenticationAndAuthorization
│ ├── AuthorizationHeaderEndpointBehavior.cs
│ ├── AuthorizationHeaderMessageHandler.cs
│ ├── ITestService.cs
│ ├── NativeAuthenticationAndAuthorizationTests.cs
│ └── TestService.cs
├── OperationDescription
│ ├── IServiceWithMessageContractAndEmptyXmlRoot.cs
│ ├── IServiceWithMessageContract.cs
│ ├── Model
│ │ ├── ClassWithEmptyXmlRoot.cs
│ │ ├── ClassWithXmlRoot.cs
│ │ ├── CoolResponseClass.cs
│ │ └── TypedSoapFault.cs
│ └── OperationDescriptionTests.cs
├── RawRequestSoap11Tests.cs
├── RawRequestSoap12Tests.cs
├── RequestArgumentsOrder
│ ├── IOriginalParametersOrderService.cs
│ ├── IReversedParametersOrderService.cs
│ ├── RequestArgumentsOrderTests.cs
│ ├── ServiceFixture.cs
│ └── ServiceNamespace.cs
├── Serialization
│ ├── DataContractSerializationTests.cs
│ ├── MessageHeadersTests.cs
│ ├── Models.DataContract
│ │ ├── ComplexModel1.cs
│ │ ├── ComplexModel2.cs
│ │ ├── ComplexObject.cs
│ │ ├── ISampleService.cs
│ │ ├── ISampleServiceWithMessageHeaders.cs
│ │ ├── MessageHeadersModelWithBodyAndNamespace.cs
│ │ ├── MessageHeadersModelWithBody.cs
│ │ ├── MessageHeadersModelWithNamespace.cs
│ │ └── SampleEnum.cs
│ ├── Models.Xml
│ │ ├── BasicMessageContractPayload.cs
│ │ ├── ComplexLegacyModel.cs
│ │ ├── ComplexModel1.cs
│ │ ├── ComplexModel2.cs
│ │ ├── ComplexObject.cs
│ │ ├── DataContractWithoutNamespace.cs
│ │ ├── DataContractWithStream.cs
│ │ ├── ISampleService.cs
│ │ ├── MessageContractRequestRpcStyle.cs
│ │ ├── MessageContractRequestWithArrays.cs
│ │ ├── MessageContractResponseRpcStyle.cs
│ │ ├── MessageContractResponseWithArrays.cs
│ │ ├── NotWrappedFieldComplexInput.cs
│ │ ├── NotWrappedFieldComplexInputRequest.cs
│ │ ├── NotWrappedFieldComplexInputResponse.cs
│ │ ├── NotWrappedFieldDoubleComplexInputRequest.cs
│ │ ├── NotWrappedPropertyComplexInput.cs
│ │ ├── NotWrappedPropertyComplexInputRequest.cs
│ │ ├── NotWrappedPropertyComplexInputResponse.cs
│ │ ├── PingComplexMessageHeaderArrayRequest.cs
│ │ ├── PingComplexMessageHeaderArrayResponse.cs
│ │ ├── PingComplexMessageMessageContractAttributeResponse.cs
│ │ ├── PingComplexModelOldStyleRequest.cs
│ │ ├── PingComplexModelOldStyleResponse.cs
│ │ ├── SampleEnum.cs
│ │ ├── ServiceNamespace.cs
│ │ ├── UnwrappedMultipleMessageBodyMemberResponse.cs
│ │ └── UnwrappedStringMessageBodyMemberResponse.cs
│ ├── ServiceFixture.cs
│ ├── XmlSerializationTests.cs
│ └── xunit.runner.json
├── ServiceDescription
│ ├── IServiceWithName.cs
│ ├── IServiceWithoutName.cs
│ └── ServiceContractTests.cs
├── ServiceOperationTuner
│ ├── ClientMessageInspector.cs
│ ├── CustomHeadersEndpointBehavior.cs
│ ├── ServiceOperationTunerTests.cs
│ ├── Startup.cs
│ └── TestServiceOperationTuner.cs
├── SoapCore.Tests.csproj
├── SoapMessageProcessor
│ ├── SoapMessageProcessorTests.cs
│ └── Startup.cs
├── Startup.cs
├── stylecop.json
├── TestService.cs
├── TestServiceKnownTypesProvider.cs
├── TrailingServicePathTuner
│ ├── ISoapService.cs
│ ├── MockModelBounder.cs
│ ├── MockServiceProvider.cs
│ ├── MockSoapService.cs
│ └── TrailingServicePathTunerTests.cs
├── Utilities
│ ├── CustomTextMessageBindingElement.cs
│ ├── CustomTextMessageEncoder.cs
│ ├── CustomTextMessageEncoderFactory.cs
│ └── XElementExtensions.cs
├── Wsdl
│ ├── IStartupConfiguration.cs
│ ├── Services
│ │ ├── ArrayOfStringModel.cs
│ │ ├── ArrayService.cs
│ │ ├── AttributeType.cs
│ │ ├── CircularReferenceFirstObject.cs
│ │ ├── CircularReferenceSecondObject.cs
│ │ ├── ComplexComplexType.cs
│ │ ├── ComplexType.cs
│ │ ├── CustomDictionary.cs
│ │ ├── Date.cs
│ │ ├── DefaultValuesAttributesService.cs
│ │ ├── EmptyMembers.cs
│ │ ├── EnumWithCustomNames.cs
│ │ ├── ErrorDetail.cs
│ │ ├── FailedOperation.cs
│ │ ├── IActionResultContractService.cs
│ │ ├── IAnonymousServiceKnownTypesService.cs
│ │ ├── IAttributeService.cs
│ │ ├── ICollectionDataContractService.cs
│ │ ├── IComplexComplexTypeWithCustomXmlNamesService.cs
│ │ ├── IComplexTypeAndOutParameterService.cs
│ │ ├── IDataContractCircularReferenceService.cs
│ │ ├── IDataContractContainsItselfService.cs
│ │ ├── IDataContractNameService.cs
│ │ ├── IDataContractWithNonDataMembersService.cs
│ │ ├── IDatetimeOffsetService.cs
│ │ ├── IDictionaryTypeListService.cs
│ │ ├── IEmptyNamespaceService.cs
│ │ ├── IEnumListService.cs
│ │ ├── IEnumService.cs
│ │ ├── IEnumWithCustomNamesService.cs
│ │ ├── IInheritanceService.cs
│ │ ├── INonNullableEnumService.cs
│ │ ├── INullableEnumService.cs
│ │ ├── IObjectWithArrayService.cs
│ │ ├── IOperationContractEmptyMembersService.cs
│ │ ├── IOperationContractFieldMembersService.cs
│ │ ├── IOperationContractFieldMembersServiceWrapped.cs
│ │ ├── IPortTypeService.cs
│ │ ├── IServiceKnownTypesService.cs
│ │ ├── IServiceWithFaultContracts.cs
│ │ ├── IStreamService.cs
│ │ ├── IStringListService.cs
│ │ ├── IStructsService.cs
│ │ ├── ISystemTypesService.cs
│ │ ├── ITaskNoReturnService.cs
│ │ ├── ITestMultipleTypesService.cs
│ │ ├── IUnqualifiedMembersService.cs
│ │ ├── IValueTypeService.cs
│ │ ├── IXmlSchemaProviderTypeService.cs
│ │ ├── MessageAttributesService.cs
│ │ ├── MyClass.cs
│ │ ├── MyClassWithArray.cs
│ │ ├── NulEnum.cs
│ │ ├── OperationFault.cs
│ │ ├── PaymentResponse.cs
│ │ ├── TypeWithFields.cs
│ │ ├── TypeWithNonDataMembers.cs
│ │ ├── TypeWithUnqualifiedMembers.cs
│ │ ├── XmlAnnotatedChoiceReturnService.cs
│ │ └── XmlModelsService.cs
│ ├── Startup.cs
│ └── WsdlTests.cs
├── WsdlFromFile
│ ├── IStartupConfiguration.cs
│ ├── Services
│ │ ├── EchoIncludeService.cs
│ │ ├── EchoIncludeSvc.cs
│ │ ├── MeasurementSiteTablePublicationService.cs
│ │ └── SnapshotPullSvc.cs
│ ├── Startup.cs
│ ├── WSDL
│ │ ├── DATEXII_3_Common.xsd
│ │ ├── DATEXII_3_D2Payload.xsd
│ │ ├── DATEXII_3_ExchangeInformation.xsd
│ │ ├── DATEXII_3_LocationReferencing.xsd
│ │ ├── DATEXII_3_MessageContainer.xsd
│ │ ├── DATEXII_3_RoadTrafficData.xsd
│ │ ├── echoIncluded.xsd
│ │ ├── echoInclude.wsdl
│ │ ├── echoInclude.xsd
│ │ └── SnapshotPull.wsdl
│ ├── WSDLInclude
│ │ ├── echoWsdlInclude.wsdl
│ │ ├── ServiceDefinitions.xml
│ │ ├── xsd00.xml
│ │ └── xsd02.xml
│ ├── WsdlIncludeTests.cs
│ └── WsdlTests.cs
└── XmlNodeInputOutput
├── IXmlNodeInputOutput.cs
├── Startup.cs
├── XmlNodeInputOutput.cs
└── XmlNodeInputOutputTests.cs
46 directories, 326 files
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论