IMethodReturnMessage Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert die Rückgabemeldungsschnittstelle für Methodenaufrufe.
public interface class IMethodReturnMessage : System::Runtime::Remoting::Messaging::IMethodMessage
public interface IMethodReturnMessage : System.Runtime.Remoting.Messaging.IMethodMessage
[System.Runtime.InteropServices.ComVisible(true)]
public interface IMethodReturnMessage : System.Runtime.Remoting.Messaging.IMethodMessage
type IMethodReturnMessage = interface
interface IMethodMessage
interface IMessage
[<System.Runtime.InteropServices.ComVisible(true)>]
type IMethodReturnMessage = interface
interface IMethodMessage
interface IMessage
Public Interface IMethodReturnMessage
Implements IMethodMessage
- Abgeleitet
- Attribute
- Implementiert
Beispiele
Der folgende Beispielcode zeigt einen benutzerdefinierten Proxy, der überschreibt RealProxy.Invoke
, um die Rückgabenachrichteninformationen in die Konsole zu schreiben.
[System::Security::Permissions::SecurityPermissionAttribute
(System::Security::Permissions::SecurityAction::LinkDemand,
Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)]
[System::Security::Permissions::SecurityPermissionAttribute
(System::Security::Permissions::SecurityAction::InheritanceDemand,
Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)]
public ref class MyProxy: public RealProxy
{
private:
String^ stringUri;
MarshalByRefObject^ myMarshalByRefObject;
public:
MyProxy( Type^ myType ) : RealProxy( myType )
{
myMarshalByRefObject = dynamic_cast<MarshalByRefObject^>(Activator::CreateInstance( myType ));
ObjRef^ myObject = RemotingServices::Marshal( myMarshalByRefObject );
stringUri = myObject->URI;
}
virtual IMessage^ Invoke( IMessage^ myMessage ) override
{
IMethodCallMessage^ myCallMessage = (IMethodCallMessage^)( myMessage );
IMethodReturnMessage^ myIMethodReturnMessage =
RemotingServices::ExecuteMessage( myMarshalByRefObject, myCallMessage );
Console::WriteLine( "Method name : {0}", myIMethodReturnMessage->MethodName );
Console::WriteLine( "The return value is : {0}", myIMethodReturnMessage->ReturnValue );
// Get number of 'ref' and 'out' parameters.
int myArgOutCount = myIMethodReturnMessage->OutArgCount;
Console::WriteLine( "The number of 'ref', 'out' parameters are : {0}",
myIMethodReturnMessage->OutArgCount );
// Gets name and values of 'ref' and 'out' parameters.
for ( int i = 0; i < myArgOutCount; i++ )
{
Console::WriteLine( "Name of argument {0} is '{1}'.",
i, myIMethodReturnMessage->GetOutArgName( i ) );
Console::WriteLine( "Value of argument {0} is '{1}'.",
i, myIMethodReturnMessage->GetOutArg( i ) );
}
Console::WriteLine();
array<Object^>^myObjectArray = myIMethodReturnMessage->OutArgs;
for ( int i = 0; i < myObjectArray->Length; i++ )
Console::WriteLine( "Value of argument {0} is '{1}' in OutArgs",
i, myObjectArray[ i ] );
return myIMethodReturnMessage;
}
};
public class MyProxy : RealProxy
{
String stringUri;
MarshalByRefObject myMarshalByRefObject;
public MyProxy(Type myType): base(myType)
{
myMarshalByRefObject = (MarshalByRefObject)Activator.CreateInstance(myType);
ObjRef myObject = RemotingServices.Marshal(myMarshalByRefObject);
stringUri = myObject.URI;
}
public override IMessage Invoke(IMessage myMessage)
{
IMethodCallMessage myCallMessage = (IMethodCallMessage)myMessage;
IMethodReturnMessage myIMethodReturnMessage =
RemotingServices.ExecuteMessage(myMarshalByRefObject, myCallMessage);
Console.WriteLine("Method name : " + myIMethodReturnMessage.MethodName);
Console.WriteLine("The return value is : " + myIMethodReturnMessage.ReturnValue);
// Get number of 'ref' and 'out' parameters.
int myArgOutCount = myIMethodReturnMessage.OutArgCount;
Console.WriteLine("The number of 'ref', 'out' parameters are : " +
myIMethodReturnMessage.OutArgCount);
// Gets name and values of 'ref' and 'out' parameters.
for(int i = 0; i < myArgOutCount; i++)
{
Console.WriteLine("Name of argument {0} is '{1}'.",
i, myIMethodReturnMessage.GetOutArgName(i));
Console.WriteLine("Value of argument {0} is '{1}'.",
i, myIMethodReturnMessage.GetOutArg(i));
}
Console.WriteLine();
object[] myObjectArray = myIMethodReturnMessage.OutArgs;
for(int i = 0; i < myObjectArray.Length; i++)
Console.WriteLine("Value of argument {0} is '{1}' in OutArgs",
i, myObjectArray[i]);
return myIMethodReturnMessage;
}
}
<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> _
Public Class MyProxy
Inherits RealProxy
Private stringUri As String
Private myMarshalByRefObject As MarshalByRefObject
Public Sub New(myType As Type)
MyBase.New(myType)
myMarshalByRefObject = CType(Activator.CreateInstance(myType), MarshalByRefObject)
Dim myObject As ObjRef = RemotingServices.Marshal(myMarshalByRefObject)
stringUri = myObject.URI
End Sub
Public Overrides Function Invoke(myMessage As IMessage) As IMessage
Dim myCallMessage As IMethodCallMessage = CType(myMessage, IMethodCallMessage)
Dim myIMethodReturnMessage As IMethodReturnMessage = RemotingServices. _
ExecuteMessage(myMarshalByRefObject, myCallMessage)
Console.WriteLine("Method name : " + myIMethodReturnMessage.MethodName)
Console.WriteLine("The return value is : " + myIMethodReturnMessage.ReturnValue)
' Get number of 'ref' and 'out' parameters.
Dim myArgOutCount As Integer = myIMethodReturnMessage.OutArgCount
Console.WriteLine("The number of 'ref', 'out' parameters are : " + _
myIMethodReturnMessage.OutArgCount.ToString())
' Gets name and values of 'ref' and 'out' parameters.
Dim i As Integer
For i = 0 To myArgOutCount - 1
Console.WriteLine("Name of argument {0} is '{1}'.", i, _
myIMethodReturnMessage.GetOutArgName(i))
Console.WriteLine("Value of argument {0} is '{1}'.", i, _
myIMethodReturnMessage.GetOutArg(i))
Next i
Console.WriteLine()
Dim myObjectArray As Object() = myIMethodReturnMessage.OutArgs
For i = 0 To myObjectArray.Length - 1
Console.WriteLine("Value of argument {0} is '{1}' in OutArgs", i, myObjectArray(i))
Next i
Return myIMethodReturnMessage
End Function 'Invoke
End Class
Hinweise
Eine Methodenaufrufrückmeldung stellt die Antwort auf einen Methodenaufruf für ein Objekt am Ende der Nachrichtensenke dar. Ein IMethodReturnMessage wird als Ergebnis einer Methode generiert, die für ein Remoteobjekt aufgerufen wird, und wird verwendet, um die Ergebnisse des Methodenaufrufs an den Aufrufer zurückzugeben.
Eigenschaften
ArgCount |
Ruft die Anzahl von Argumenten ab, die an die Methode übergeben werden. (Geerbt von IMethodMessage) |
Args |
Ruft ein Array von Argumenten ab, die an die Methode übergeben werden. (Geerbt von IMethodMessage) |
Exception |
Ruft die Ausnahme ab, die während des Methodenaufrufs ausgelöst wurde. |
HasVarArgs |
Ruft einen Wert ab, der angibt, ob die Meldung variable Argumente besitzt. (Geerbt von IMethodMessage) |
LogicalCallContext |
Ruft den LogicalCallContext für den aktuellen Methodenaufruf ab. (Geerbt von IMethodMessage) |
MethodBase |
Ruft den MethodBase der aufgerufenen Methode ab. (Geerbt von IMethodMessage) |
MethodName |
Ruft den Namen der aufgerufenen Methode ab. (Geerbt von IMethodMessage) |
MethodSignature |
Ruft ein Objekt ab, das die Methodensignatur enthält. (Geerbt von IMethodMessage) |
OutArgCount |
Ruft die Anzahl der Argumente im Methodenaufruf ab, die als |
OutArgs |
Gibt das angegebene Argument zurück, das als |
Properties |
Ruft ein IDictionary ab, das eine Auflistung der Meldungseigenschaften darstellt. (Geerbt von IMessage) |
ReturnValue |
Ruft den Rückgabewert des Methodenaufrufs ab. |
TypeName |
Ruft den vollständigen Type-Namen des Objekts ab, für das der Aufruf bestimmt ist. (Geerbt von IMethodMessage) |
Uri |
Ruft den URI des bestimmten Objekts ab, für das der Aufruf bestimmt ist. (Geerbt von IMethodMessage) |
Methoden
GetArg(Int32) |
Ruft ein bestimmtes Argument als Object ab. (Geerbt von IMethodMessage) |
GetArgName(Int32) |
Ruft den Namen des Arguments ab, das an die Methode übergeben wird. (Geerbt von IMethodMessage) |
GetOutArg(Int32) |
Gibt das angegebene Argument zurück, das als |
GetOutArgName(Int32) |
Gibt den Namen des angegebenen Arguments zurück, das als |