이 설명서는 보관되지만 유지 되지 않습니다.

MessageParameterAttribute 클래스

업데이트: 2007년 11월

요청 및 응답 매개 변수의 이름을 제어합니다. Message 또는 메시지 계약과 함께 사용할 수 없습니다.

네임스페이스:  System.ServiceModel
어셈블리:  System.ServiceModel(System.ServiceModel.dll)

[AttributeUsageAttribute(AttributeTargets.Parameter|AttributeTargets.ReturnValue, Inherited = false)]
public sealed class MessageParameterAttribute : Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Parameter|AttributeTargets.ReturnValue, Inherited = false) */
public final class MessageParameterAttribute extends Attribute
public final class MessageParameterAttribute extends Attribute

매개 변수 이름이나 반환 값을 제어할 때 MessageParameterAttribute를 사용합니다. 이 특성은 매개 변수가 MessageContractAttribute 특성으로 표시된 경우 아무런 효과가 없습니다.

ms586749.alert_note(ko-kr,VS.90).gif참고:

작업 서명의 매개 변수 이름 값은 계약의 일부이며 대/소문자를 구분합니다. 로컬 매개 변수 이름과 클라이언트 응용 프로그램의 작업을 설명하는 메타데이터를 구분해야 하는 경우 이 특성을 사용합니다.

기본 SOAP 봉투 자체를 수정하지 않고 SOAP 본문 내용의 serialization을 제어하는 것에 대한 자세한 내용은 System.Runtime.Serialization.DataContractAttribute, 서비스 계약에서 데이터 전송 지정데이터 계약 사용를 참조하십시오.

메시지 계약 만들기에 대한 자세한 내용은 메시지 계약 사용을 참조하십시오.

다음 코드 예제에서는 MessageParameterAttribute를 사용하여 메타데이터에서 매개 변수의 이름과 반환 값을 설정하는 것을 보여 줍니다.

using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.Text;

namespace Microsoft.WCF.Documentation
{
  [ServiceContract(Namespace="http://microsoft.wcf.documentation")]
  public interface ISampleService{
    [OperationContract]
    [return:MessageParameter(Name = "Output")]
    string SampleMethod([MessageParameter(Name = "Input")]string msg);
  }

  /*
   The preceding use of MessageParameterAttribute generates the following XSD:

<?xml version="1.0" encoding="utf-8" ?> 
  <xs:schema 
    elementFormDefault="qualified" 
    targetNamespace="http://microsoft.wcf.documentation" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:tns="http://microsoft.wcf.documentation">
    <xs:element name="SampleMethod">
      <xs:complexType>
        <xs:sequence>
          <xs:element minOccurs="0" name="Input" nillable="true" type="xs:string" /> 
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="SampleMethodResponse">
      <xs:complexType>
        <xs:sequence>
          <xs:element minOccurs="0" name="Output" nillable="true" type="xs:string" /> 
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:schema>

   And the message sent is edited for clarity:
  <s:Body>
    <SampleMethod xmlns="http://microsoft.wcf.documentation">
      <Input>hello!</Input>
    </SampleMethod>
  </s:Body>   
   */


다음 예제에서는 앞에 나온 서비스에 대해 생성된 서비스 계약을 보여 줍니다. 이제 매개 변수의 이름은 Input입니다.

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://microsoft.wcf.documentation", ConfigurationName="ISampleService")]
public interface ISampleService
{

    [System.ServiceModel.OperationContractAttribute(
      Action="http://microsoft.wcf.documentation/ISampleService/SampleMethod",
      ReplyAction="http://microsoft.wcf.documentation/ISampleService/SampleMethodResponse"
    )]
    [return: System.ServiceModel.MessageParameterAttribute(Name="Output")]
    string SampleMethod(string Input);
}


System.Object
  System.Attribute
    System.ServiceModel.MessageParameterAttribute

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

.NET Framework

3.5, 3.0에서 지원
표시: