Export (0) Print
Expand All

LogicalMethodInfo Class

Represents the attributes and metadata for an XML Web service method. This class cannot be inherited.

System.Object
  System.Web.Services.Protocols.LogicalMethodInfo

Namespace:  System.Web.Services.Protocols
Assembly:  System.Web.Services (in System.Web.Services.dll)

public sealed class LogicalMethodInfo

The LogicalMethodInfo type exposes the following members.

  NameDescription
Public methodLogicalMethodInfoInitializes a new instance of the LogicalMethodInfo class with the MethodInfo passed in.
Top

  NameDescription
Public propertyAsyncCallbackParameterGets the parameter information for the AsyncCallback parameter of a Begin method in an asynchronous invocation.
Public propertyAsyncResultParameterGets the return value of a Begin asynchronous method invocation.
Public propertyAsyncStateParameterGets the parameter information for the AsyncState parameter of a Begin method in an asynchronous invocation.
Public propertyBeginMethodInfoGets the attributes and metadata for a Begin method in an asynchronous invocation.
Public propertyCustomAttributeProviderGets the custom attributes applied to the method.
Public propertyDeclaringTypeGets the class that declares the method represented by the current LogicalMethodInfo.
Public propertyEndMethodInfoGets the attributes and metadata for an End method of an asynchronous invocation to a method.
Public propertyInParametersGets the parameters passed into the method represented by the instance of LogicalMethodInfo.
Public propertyIsAsyncGets a value indicating whether the method represented by the instance of LogicalMethodInfo is invoked asynchronously.
Public propertyIsVoidGets a value indicating whether the return type for the method represented by the instance of LogicalMethodInfo is void.
Public propertyMethodInfoGets the attributes and metadata for a synchronous method.
Public propertyNameGets the name of the method represented by this LogicalMethodInfo.
Public propertyOutParametersGets the out parameters for the method.
Public propertyParametersGets the parameters for the method.
Public propertyReturnTypeGets the return type of this method.
Public propertyReturnTypeCustomAttributeProviderGets the custom attributes for the return type.
Top

  NameDescription
Public methodBeginInvokeBegins an asynchronous invocation of the method represented by this LogicalMethodInfo.
Public methodStatic memberCreate(MethodInfo[])Given an array of MethodInfo that can contain information about both asynchronous and synchronous methods, creates an array of LogicalMethodInfo.
Public methodStatic memberCreate(MethodInfo[], LogicalMethodTypes)Given an array of MethodInfo, where the returned array of LogicalMethodInfo can be restricted to only asynchronous or synchronous methods, creates an array of LogicalMethodInfo.
Public methodEndInvokeEnds an asynchronous invocation of the method represented by the current LogicalMethodInfo.
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public methodGetCustomAttributeReturns the first custom attribute applied to the type, if any custom attributes are applied to the type.
Public methodGetCustomAttributesReturns the custom attributes applied to the specified type.
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodInvokeInvokes the method represented by the current LogicalMethodInfo.
Public methodStatic memberIsBeginMethodReturns a value indicating whether the method passed in represents a Begin method of an asynchronous invocation.
Public methodStatic memberIsEndMethodReturns a value indicating whether the method passed in represents an End method of an asynchronous invocation.
Public methodToStringReturns a string that represents the current LogicalMethodInfo. (Overrides Object.ToString().)
Top

LogicalMethodInfo is used primarily by a SOAP extension to interrogate the details of the XML Web service method with which the SOAP extension is configured to run. Depending on how the SOAP extension is configured, it can find out details about the XML Web service method in the GetInitializer method of SoapExtension that takes a LogicalMethodInfo. The LogicalMethodInfo provides details such as the XML Web service method's parameters by accessing the Parameters property and any custom attributes applied to the XML Web service method using the GetCustomAttributes property.

For more details on SOAP extensions see the SoapExtension class or [<topic://cpconAlteringSOAPMessageUsingSOAPExtensions>].

// Process the SOAP message received and write to log file.
public override void ProcessMessage(SoapMessage message) 
{
   switch (message.Stage) 
   {
      case SoapMessageStage.BeforeSerialize:
         break;
      case SoapMessageStage.AfterSerialize:
         WriteOutput((SoapServerMessage)message);
         break;
      case SoapMessageStage.BeforeDeserialize:
         WriteInput((SoapServerMessage)message);
         break;
      case SoapMessageStage.AfterDeserialize:
         break;
      default:
         throw new Exception("invalid stage");
   }
}

// Write the contents of the incoming SOAP message to the log file.
public void WriteInput(SoapServerMessage message)
{
   // Utility method to copy the contents of one stream to another. 
   Copy(oldStream, newStream);
   FileStream myFileStream = new FileStream(filename, FileMode.Append, FileAccess.Write);
   StreamWriter myStreamWriter = new StreamWriter(myFileStream);
   myStreamWriter.WriteLine("================================== Request at "
      + DateTime.Now);
   myStreamWriter.WriteLine("The method that has been invoked is : ");
   myStreamWriter.WriteLine("\t" + message.MethodInfo.Name);
   myStreamWriter.WriteLine("The contents of the SOAP envelope are : ");
   myStreamWriter.Flush();
   newStream.Position = 0;
   Copy(newStream, myFileStream);
   myFileStream.Close();
   newStream.Position = 0;
}

// Write the contents of the outgoing SOAP message to the log file.
public void WriteOutput(SoapServerMessage message)
{
   newStream.Position = 0;
   FileStream myFileStream = new FileStream(filename, FileMode.Append, FileAccess.Write);
   StreamWriter myStreamWriter = new StreamWriter(myFileStream);
   myStreamWriter.WriteLine("---------------------------------- Response at " 
                                       + DateTime.Now);
   myStreamWriter.Flush();
   // Utility method to copy the contents of one stream to another. 
   Copy(newStream, myFileStream);
   myFileStream.Close();
   newStream.Position = 0;
   Copy(newStream, oldStream);
}

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft