2017-03-25 11 views
0

C#のWebアプリケーションのASMXファイル内のWebメソッドを作成する場合は、関連するWSDLは、このフォーマットは次のとおりです。C#のWebメソッド

<Envelope> 
    <Header/> 
    <Body> 
    <WebMethodName> 
     <WebMethodArgumentName> 
     <WebMethodArgumentType> 

私はこのようにそれを持っている必要があります:

またはこのような

<Envelope> 
    <Header/> 
    <Body> 
    <WebMethodName> 
     <WebMethodArgumentType> 

<Envelope> 
    <Header/> 
    <Body> 
    <WebMethodArgumentName> 
     <WebMethodArgumentType> 

クライアントがその形式でリクエストを送信するためですので、私はの名前を制御する必要があります外側のタグ、私が考えることができる唯一の方法は、WebメソッドまたはWebメソッド引数の名前を変更することですが、そのためには、これらのタグの1つだけを持つ必要があります。

ところで、私はこのような(wsdl.exeは、同じ結果を生成します)svcutil.exeでコードを生成しています:

svcutil /language:C# /out:IWebServiceName.cs /n:*,Web.Service.Namespace^
..\XSD\SomeXsd.xsd^
..\XSD\AnotherXsd.xsd^
..\WSDL\TheWsdl.wsdl 

は、どのように私はこれを達成することができますか?

ありがとうございます!

+1

クライアントはWSDLに対して作業していますか?コピーを入手できますか?次に、このような目にするのではなく、WSDLから[コード生成](http://stackoverflow.com/questions/548314/create-an-asmx-web-service-from-a-wsdl-file)することができます。 –

+0

ありがとうジョン。はい、WSDLがあり、svcutil.exeとwsdl.exeの両方を使用してコードを生成しています。 –

答えて

0

私はこの質問をしたが、最終的にはanwserを得たのでそれはしばらくしている:このような注釈を使用してWebメソッドを飾る:

[SoapDocumentMethod(ParameterStyle = SoapParameterStyle.Bare)]

docsによると、列挙の3人のメンバーがあります。

Bare, Default, Wrapped

パラメータがカプセル化されたWrappedがデフォルトです。

私はBareを探していました.Bareは、SOAPリクエストまたはSOAPレスポンスのBody要素の直後にパラメータを配置します。

私のようにこの問題を扱う人に役立つことを願っています。

関連する問題