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 bir yöntem çağrısına verilen yanıtı temsil eder. uzak IMethodReturnMessage nesnede çağrılan bir yöntemin sonucu olarak oluşturulur ve yöntem çağrısının sonuçlarını çağırana geri döndürmek için kullanılır.

Özellikler

Name Description
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 nesne alır.

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

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

OutArgs

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

Properties

IDictionary İletinin özelliklerinin koleksiyonunu temsil eden bir 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 belirli nesnenin tam Type adını alır.

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

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

(Devralındığı yer: IMethodMessage)

Yöntemler

Name Description
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 ref parametresi olarak out işaretlenmiş belirtilen bağımsız değişkeni döndürür.

GetOutArgName(Int32)

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

Şunlara uygulanır