IMethodReturnMessage Interface
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee definieert u de retourberichtinterface van de methode-aanroep.
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
- Afgeleid
- Kenmerken
- Implementeringen
Voorbeelden
In de volgende voorbeeldcode ziet u een aangepaste proxy die wordt overschreven RealProxy.Invoke om de retourberichtgegevens naar de console te schrijven.
[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
Opmerkingen
Een retourbericht van een methodeaanroep vertegenwoordigt het antwoord op een methodeaanroep op een object aan het einde van de berichtsink. Er IMethodReturnMessage wordt een gegenereerd als gevolg van een methode die wordt aangeroepen op een extern object en wordt gebruikt om de resultaten van de methodeaanroep terug te sturen naar de aanroeper.
Eigenschappen
| Name | Description |
|---|---|
| ArgCount |
Hiermee haalt u het aantal argumenten op dat aan de methode is doorgegeven. (Overgenomen van IMethodMessage) |
| Args |
Hiermee haalt u een matrix van argumenten op die aan de methode zijn doorgegeven. (Overgenomen van IMethodMessage) |
| Exception |
Hiermee wordt de uitzondering gegenereerd tijdens de methode-aanroep. |
| HasVarArgs |
Hiermee wordt een waarde opgehaald die aangeeft of het bericht variabele argumenten heeft. (Overgenomen van IMethodMessage) |
| LogicalCallContext |
Hiermee haalt u de LogicalCallContext aanroep voor de huidige methode op. (Overgenomen van IMethodMessage) |
| MethodBase |
Hiermee haalt u de MethodBase aangeroepen methode op. (Overgenomen van IMethodMessage) |
| MethodName |
Hiermee haalt u de naam van de aangeroepen methode op. (Overgenomen van IMethodMessage) |
| MethodSignature |
Hiermee haalt u een object op met de methodehandtekening. (Overgenomen van IMethodMessage) |
| OutArgCount |
Hiermee haalt u het aantal argumenten op in de methode-aanroep die is gemarkeerd als |
| OutArgs |
Retourneert het opgegeven argument dat is gemarkeerd als een |
| Properties |
Hiermee haalt u een IDictionary op die een verzameling eigenschappen van het bericht vertegenwoordigt. (Overgenomen van IMessage) |
| ReturnValue |
Hiermee wordt de retourwaarde van de methode-aanroep opgehaald. |
| TypeName |
Hiermee haalt u de volledige Type naam op van het specifieke object waarvoor de aanroep is bestemd. (Overgenomen van IMethodMessage) |
| Uri |
Hiermee haalt u de URI op van het specifieke object waarvoor de aanroep is bestemd. (Overgenomen van IMethodMessage) |
Methoden
| Name | Description |
|---|---|
| GetArg(Int32) |
Hiermee haalt u een specifiek argument op als een Object. (Overgenomen van IMethodMessage) |
| GetArgName(Int32) |
Hiermee haalt u de naam op van het argument dat aan de methode is doorgegeven. (Overgenomen van IMethodMessage) |
| GetOutArg(Int32) |
Retourneert het opgegeven argument dat is gemarkeerd als een |
| GetOutArgName(Int32) |
Retourneert de naam van het opgegeven argument dat is gemarkeerd als een |