0

DataContract を使用して WCF サービス アプリケーションを作成しました。サービスは独自の既定のメッセージ名を生成しています。サービスが Java クライアントによって使用されています。これらの長い名前に基づいて Java プロキシ クラスが生成されるため、これらのデフォルト メッセージ名を削除する必要があります。

wsdl:message name=" MyService-v1-1_Login_InputMessage "

wsdl:part name="parameters" element="tns:Login"

wsdl:メッセージ

wsdl:message name=" MyService-v1-1_Login_OutputMessage "

wsdl:part name="parameters" element="tns:LoginResponse"

wsdl:メッセージ

wsdl:message name=" MyService-v1-1_Login_ServiceFault_FaultMessage "

wsdl:part name="detail" element="tns:ServiceFault"

4

1 に答える 1

1

これを制御するには、IWsdlExportExtension を使用できます。msdn の例を参照してください: http://msdn.microsoft.com/en-us/library/system.servicemodel.description.iwsdlexportextension.aspx

該当するコード

            // Get parameter information.
            ParameterInfo[] args = op.SyncMethod.GetParameters();
            for (int i = 0; i < args.Length; i++)
            {
              object[] docAttrs 
                = args[i].GetCustomAttributes(typeof(WsdlParameterDocumentationAttribute), false);
              if (docAttrs.Length != 0)
              {
                // <param name="Int1">Text.</param>
                XmlElement newParamElement = opOwner.CreateElement("param");
                XmlAttribute paramName = opOwner.CreateAttribute("name");
                paramName.Value = args[i].Name;
                newParamElement.InnerText 
                  = ((WsdlParameterDocumentationAttribute)docAttrs[0]).ParamComment;
                newParamElement.Attributes.Append(paramName);
                operation.DocumentationElement.AppendChild(newParamElement);
              }
            }
于 2013-08-06T02:32:59.303 に答える