C# 从.Net应用程序调用非.Net Web服务
我正在开发一个.Net客户端应用程序,该应用程序将通过SOAP标准使用一个非.Net web服务,以计算和发布商品的销售税信息。没有.asmx。web服务由其他组编写和维护。他们提供了一个WSDL url,并说我需要的所有XSD模式都在其中。问题是,它是使用xsd:import标记嵌套和菊花链的,深度只有几层 我已通过添加服务引用将web服务添加到我的Visual Studio 2012 Windows窗体项目中。调用此web服务不是直截了当的,因为它有一些额外的安全要求 web服务有3个操作-心跳、计算、发布 凭借我对WCF的有限知识和另一位专家的帮助,我成功地调用了heartbeat函数;这是最简单的,因为它不需要参数 我的难题是,如何构造输入来调用其他两个函数——计算和发布?它们都将强类型对象作为输入。当这个应用程序.Net将被其他应用程序调用时,我如何构造这样一个强类型对象 目前,作为一个实验,我正在基于为服务引用创建的代理类VS2012构建一个对象,对其进行初始化并手动填充一些值。我应该使用XSD.exe从WSDL为模式生成类,并通过反序列化输入填充它们吗 下面是对calculate函数的SOAP调用。当从SoapUI调用时,此功能有效C# 从.Net应用程序调用非.Net Web服务,c#,web-services,wcf,visual-studio-2012,soap-client,C#,Web Services,Wcf,Visual Studio 2012,Soap Client,我正在开发一个.Net客户端应用程序,该应用程序将通过SOAP标准使用一个非.Net web服务,以计算和发布商品的销售税信息。没有.asmx。web服务由其他组编写和维护。他们提供了一个WSDL url,并说我需要的所有XSD模式都在其中。问题是,它是使用xsd:import标记嵌套和菊花链的,深度只有几层 我已通过添加服务引用将web服务添加到我的Visual Studio 2012 Windows窗体项目中。调用此web服务不是直截了当的,因为它有一些额外的安全要求 web服务有3个操作-
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:v1="http://MyCompany.com/svc/Finance/SalesTax/v1/">
<soap:Header/>
<soap:Body>
<v1:calculate>
<CalculateRequest>
<Context>
<!--Optional:-->
<SendingApplication>SoapUI</SendingApplication>
<!--Optional:-->
<UserId>SoapUI</UserId>
<!--Zero or more repetitions:-->
<LocaleCode>en</LocaleCode>
<!--Optional:-->
<ApplicationName>SoapUI</ApplicationName>
</Context>
<TaxRequestor>
<Name>Person X</Name>
<!--Optional:-->
<!--Optional:-->
<AdministrativeAddress>
<Line1>888 River Dr</Line1>
<City>Queens</City>
<County>Queens County</County>
<State>NY</State>
<PostalCode>11001</PostalCode>
<CountryISO3Char>USA</CountryISO3Char>
</AdministrativeAddress>
<CompanyNumber>1</CompanyNumber>
</TaxRequestor>
<Transaction>
<!--1 or more repetitions:-->
<LineItem>
<LineNumber>1</LineNumber>
<!--Optional:-->
<Item>
<!--Optional:-->
<Identifier>10134</Identifier>
<!--Zero or more repetitions:-->
<Name LocaleCode="en-US">Product X</Name>
<!--Optional:-->
<TaxCode>9876</TaxCode>
<Department>
<!--Optional:-->
<Code>99</Code>
<!--Zero or more repetitions:-->
<Name LocaleCode="en-US">?</Name>
</Department>
</Item>
<!--Optional:-->
<Quantity>10</Quantity>
<!--Optional:-->
<UnitPrice>
<Amount>1000</Amount>
</UnitPrice>
<ShipFromAddress>
<Line1>888 River Dr</Line1>
<City>Queens</City>
<County>Queens County</County>
<State>NY</State>
<PostalCode>11001</PostalCode>
<CountryISO3Char>USA</CountryISO3Char>
</ShipFromAddress>
<ShipToAddress>
<Line1>1041 New York Rd</Line1>
<City>Newark</City>
<County>Essex</County>
<State>NJ</State>
<PostalCode>07054</PostalCode>
<CountryISO3Char>USA</CountryISO3Char>
</ShipToAddress>
<!--Zero or more repetitions:-->
<LineItemIdentifier>1</LineItemIdentifier>
</LineItem>
<LineItem>
<LineNumber>1</LineNumber>
<!--Optional:-->
<Item>
<!--Optional:-->
<Identifier>98765</Identifier>
<!--Zero or more repetitions:-->
<Name LocaleCode="en-US">Product X</Name>
<!--Optional:-->
<TaxCode>Some Tax Code</TaxCode>
<Department>
<!--Optional:-->
<Code>99</Code>
</Department>
</Item>
<!--Optional:-->
<Quantity>10</Quantity>
<!--Optional:-->
<UnitPrice>
<Amount>1000</Amount>
</UnitPrice>
<ShipFromAddress>
<Line1>888 River Dr</Line1>
<City>Queens</City>
<County>Queens County</County>
<State>NY</State>
<PostalCode>11001</PostalCode>
<CountryISO3Char>USA</CountryISO3Char>
</ShipFromAddress>
<ShipToAddress>
<Line1>1008 3rd St</Line1>
<City>Lewisville</City>
<County>Denton</County>
<State>TX</State>
<PostalCode>75010</PostalCode>
<CountryISO3Char>USA</CountryISO3Char>
</ShipToAddress>
<!--Zero or more repetitions:-->
<LineItemIdentifier>1</LineItemIdentifier>
</LineItem>
</Transaction>
</CalculateRequest>
</v1:calculate>
</soap:Body>
</soap:Envelope>
请提供您的建议和建议。非常感谢。使用VS2012.Net 4.5,C您是否尝试使用svcutil.exe生成代理和契约类?当其他应用程序调用此应用程序.Net时,您说我如何构造这样一个强类型对象是什么意思?