IMethodReturnMessage Antarmuka
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan antarmuka pesan pengembalian panggilan metode.
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
- Turunan
- Atribut
- Penerapan
Contoh
Contoh kode berikut menunjukkan proksi kustom yang mengambil alih RealProxy.Invoke untuk menulis informasi pesan pengembalian ke konsol.
[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
Keterangan
Pesan pengembalian panggilan metode mewakili respons terhadap panggilan metode pada objek di akhir sink pesan. IMethodReturnMessage Dihasilkan sebagai hasil dari metode yang dipanggil pada objek jarak jauh, dan digunakan untuk mengembalikan hasil panggilan metode kembali ke pemanggil.
Properti
| Nama | Deskripsi |
|---|---|
| ArgCount |
Mendapatkan jumlah argumen yang diteruskan ke metode . (Diperoleh dari IMethodMessage) |
| Args |
Mendapatkan array argumen yang diteruskan ke metode . (Diperoleh dari IMethodMessage) |
| Exception |
Mendapatkan pengecualian yang dilemparkan selama panggilan metode. |
| HasVarArgs |
Mendapatkan nilai yang menunjukkan apakah pesan memiliki argumen variabel. (Diperoleh dari IMethodMessage) |
| LogicalCallContext |
LogicalCallContext Mendapatkan untuk panggilan metode saat ini. (Diperoleh dari IMethodMessage) |
| MethodBase |
MethodBase Mendapatkan metode yang dipanggil. (Diperoleh dari IMethodMessage) |
| MethodName |
Mendapatkan nama metode yang dipanggil. (Diperoleh dari IMethodMessage) |
| MethodSignature |
Mendapatkan objek yang berisi tanda tangan metode. (Diperoleh dari IMethodMessage) |
| OutArgCount |
Mendapatkan jumlah argumen dalam panggilan metode yang ditandai sebagai |
| OutArgs |
Mengembalikan argumen yang ditentukan yang ditandai sebagai |
| Properties |
IDictionary Mendapatkan yang mewakili kumpulan properti pesan. (Diperoleh dari IMessage) |
| ReturnValue |
Mendapatkan nilai pengembalian panggilan metode. |
| TypeName |
Mendapatkan nama lengkap Type objek tertentu yang ditujukan untuk panggilan. (Diperoleh dari IMethodMessage) |
| Uri |
Mendapatkan URI objek tertentu yang ditujukan untuk panggilan. (Diperoleh dari IMethodMessage) |
Metode
| Nama | Deskripsi |
|---|---|
| GetArg(Int32) |
Mendapatkan argumen tertentu sebagai Object. (Diperoleh dari IMethodMessage) |
| GetArgName(Int32) |
Mendapatkan nama argumen yang diteruskan ke metode . (Diperoleh dari IMethodMessage) |
| GetOutArg(Int32) |
Mengembalikan argumen yang ditentukan yang ditandai sebagai |
| GetOutArgName(Int32) |
Mengembalikan nama argumen yang ditentukan yang ditandai sebagai |