Freigeben über


LogicalMethodInfo-Klasse

Stellt die Attribute und Metadaten für eine XML-Webdienstmethode dar. Diese Klasse kann nicht geerbt werden.

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

Syntax

'Declaration
Public NotInheritable Class LogicalMethodInfo
'Usage
Dim instance As LogicalMethodInfo
public sealed class LogicalMethodInfo
public ref class LogicalMethodInfo sealed
public final class LogicalMethodInfo
public final class LogicalMethodInfo

Hinweise

LogicalMethodInfo wird hauptsächlich von einer SOAP-Erweiterung zum Abfragen der Details der XML-Webdienstmethode verwendet, mit der die SOAP-Erweiterung gemäß ihrer Konfiguration ausgeführt wird. In Abhängigkeit von der Konfiguration der SOAP-Erweiterung kann diese Details über die XML-Webdienstmethode in der GetInitializer-Methode der SoapExtension ermitteln, die eine LogicalMethodInfo annimmt. Die LogicalMethodInfo stellt Details wie die Parameter der XML-Webdienstmethode bereit, indem sie auf die Parameters-Eigenschaft und alle unter Verwendung der GetCustomAttributes-Eigenschaft auf die XML-Webdienstmethode angewendeten benutzerdefinierten Attribute zugreift.

Weitere Informationen über SOAP-Erweiterungen finden Sie in der SoapExtension-Klasse oder unter Änderung von SOAP-Nachrichten mithilfe von SOAP-Erweiterungen.

Beispiel

' Process the SOAP message received and write to log file.
Public Overrides Sub ProcessMessage(message As SoapMessage)
   Select Case message.Stage
      Case SoapMessageStage.BeforeSerialize
      Case SoapMessageStage.AfterSerialize
         WriteOutput(CType(message, SoapServerMessage))
      Case SoapMessageStage.BeforeDeserialize
         WriteInput(CType(message, SoapServerMessage))
      Case SoapMessageStage.AfterDeserialize
      Case Else
            Throw New Exception("invalid stage")
   End Select
End Sub 'ProcessMessage

' Write the contents of the incoming SOAP message to the log file.
Public Sub WriteInput(message As SoapServerMessage)
   ' Utility method to copy the contents of one stream to another.
   Copy(oldStream, newStream)
   Dim myFileStream As New FileStream(filename, FileMode.Append, FileAccess.Write)
   Dim myStreamWriter As New StreamWriter(myFileStream)
   myStreamWriter.WriteLine("================================== Request at " + _
                             DateTime.Now)
   myStreamWriter.WriteLine("The method that has been invoked is : ")
   myStreamWriter.WriteLine(ControlChars.Tab + 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
End Sub 'WriteInput

' Write the contents of the outgoing SOAP message to the log file.
Public Sub WriteOutput(message As SoapServerMessage)
   newStream.Position = 0
   Dim myFileStream As New FileStream(filename, FileMode.Append, FileAccess.Write)
   Dim myStreamWriter As 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)
End Sub 'WriteOutput
// 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);
}
// Process the SOAP message received and write to log file.
public void ProcessMessage(SoapMessage message) throws Exception
{
    switch(message.get_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");
    }
} //ProcessMessage
   
// 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.get_Now());
    myStreamWriter.WriteLine("The method that has been invoked is : ");
    myStreamWriter.WriteLine("\t" + message.get_MethodInfo().get_Name());
    myStreamWriter.WriteLine("The contents of the SOAP envelope are : ");
    myStreamWriter.Flush();
    newStream.set_Position(0);
    Copy(newStream, myFileStream);
    myFileStream.Close();
    newStream.set_Position(0);
} //WriteInput
   
// Write the contents of the outgoing SOAP message to the log file.
public void WriteOutput(SoapServerMessage message) 
{
    newStream.set_Position(0);
    FileStream myFileStream =  new FileStream(filename, FileMode.Append, 
        FileAccess.Write);
    StreamWriter myStreamWriter = new StreamWriter(myFileStream);
    myStreamWriter.WriteLine("---------------------------------- " 
        + "Response at "  + DateTime.get_Now());
    myStreamWriter.Flush();
    // Utility method to copy the contents of one stream to another. 
    Copy(newStream, myFileStream);
    myFileStream.Close();
    newStream.set_Position(0);
    Copy(newStream, oldStream);
} //WriteOutput
   

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

LogicalMethodInfo-Member
System.Web.Services.Protocols-Namespace
SoapExtension
GetInitializer
MethodInfo