MessageDescription Class
Represents the description of a message.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
The MessageDescription contains the Headers and Body properties to provide get access to these parts of the message. Whether the message is incoming or outgoing is indicated by the Direction property. It also provides an Action property where the URI that indicates the intension of the message may be specified.
The following example uses the MessageDescription returned from Messages property of the OperationDescription class. The code iterates through the collection of endpoints and prints each endpoint name, as well as the name of each operation in the endpoint.
private void PrintDescription(ServiceHost sh) { // Declare variables. int i, j, k, l, c; ServiceDescription servDesc = sh.Description; OperationDescription opDesc; ContractDescription contractDesc; MessageDescription methDesc; MessageBodyDescription mBodyDesc; MessagePartDescription partDesc; IServiceBehavior servBeh; ServiceEndpoint servEP; // Print the behaviors of the service. Console.WriteLine("Behaviors:"); for (c = 0; c < servDesc.Behaviors.Count; c++) { servBeh = servDesc.Behaviors[c]; Console.WriteLine("\t{0}", servBeh.ToString()); } // Print the endpoint descriptions of the service. Console.WriteLine("Endpoints"); for (i = 0; i < servDesc.Endpoints.Count; i++) { // Print the endpoint names. servEP = servDesc.Endpoints[i]; Console.WriteLine("\tName: {0}", servEP.Name); contractDesc = servEP.Contract; Console.WriteLine("\tOperations:"); for (j = 0; j < contractDesc.Operations.Count; j++) { // Print the operation names. opDesc = servEP.Contract.Operations[j]; Console.WriteLine("\t\t{0}", opDesc.Name); Console.WriteLine("\t\tActions:"); for (k = 0; k < opDesc.Messages.Count; k++) { // Print the message action. methDesc = opDesc.Messages[k]; Console.WriteLine("\t\t\tAction:{0}", methDesc.Action); // Check for the existence of a body, then the body description. mBodyDesc = methDesc.Body; if (mBodyDesc.Parts.Count > 0) { for (l = 0; l < methDesc.Body.Parts.Count; l++) { partDesc = methDesc.Body.Parts[l]; Console.WriteLine("\t\t\t\t{0}",partDesc.Name); } } } } } }
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.