Aracılığıyla paylaş


IMethodReturnMessage Arabirim

Tanım

Yöntem çağrısı dönüş iletisi arabirimini tanımlar.

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
Türetilmiş
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnek kod, dönüş iletisi bilgilerini konsola yazmak için geçersiz kılan RealProxy.Invoke özel bir ara sunucuyu gösterir.

[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

Açıklamalar

Yöntem çağrısı dönüş iletisi, ileti havuzu sonundaki bir nesnedeki yöntem çağrısının yanıtını temsil eder. uzak IMethodReturnMessage nesnede çağrılan bir yöntemin sonucu olarak oluşturulur ve çağırana yöntem çağrısının sonuçlarını döndürmek için kullanılır.

Özellikler

ArgCount

Yöntemine geçirilen bağımsız değişkenlerin sayısını alır.

(Devralındığı yer: IMethodMessage)
Args

yöntemine geçirilen bir bağımsız değişken dizisi alır.

(Devralındığı yer: IMethodMessage)
Exception

Yöntem çağrısı sırasında oluşturulan özel durumu alır.

HasVarArgs

İletinin değişken bağımsız değişkenleri olup olmadığını belirten bir değer alır.

(Devralındığı yer: IMethodMessage)
LogicalCallContext

Geçerli yöntem çağrısı için öğesini LogicalCallContext alır.

(Devralındığı yer: IMethodMessage)
MethodBase

MethodBase Çağrılan yöntemin öğesini alır.

(Devralındığı yer: IMethodMessage)
MethodName

Çağrılan yöntemin adını alır.

(Devralındığı yer: IMethodMessage)
MethodSignature

Yöntem imzasını içeren bir nesneyi alır.

(Devralındığı yer: IMethodMessage)
OutArgCount

veya out parametreleri olarak ref işaretlenmiş yöntem çağrısındaki bağımsız değişkenlerin sayısını alır.

OutArgs

Veya out parametresi olarak ref işaretlenmiş belirtilen bağımsız değişkeni döndürür.

Properties

İletinin özelliklerinin bir koleksiyonunu temsil eden bir IDictionary alır.

(Devralındığı yer: IMessage)
ReturnValue

Yöntem çağrısının dönüş değerini alır.

TypeName

Çağrının hedeflendiği nesnenin tam Type adını alır.

(Devralındığı yer: IMethodMessage)
Uri

Çağrının hedeflendiği nesnenin URI'sini alır.

(Devralındığı yer: IMethodMessage)

Yöntemler

GetArg(Int32)

Belirli bir bağımsız değişkeni olarak Objectalır.

(Devralındığı yer: IMethodMessage)
GetArgName(Int32)

Yöntemine geçirilen bağımsız değişkenin adını alır.

(Devralındığı yer: IMethodMessage)
GetOutArg(Int32)

Veya out parametresi olarak ref işaretlenmiş belirtilen bağımsız değişkeni döndürür.

GetOutArgName(Int32)

Veya parametresi olarak refout işaretlenmiş belirtilen bağımsız değişkenin adını döndürür.

Şunlara uygulanır