IMethodCallMessage.InArgs Property

Definition

Gets an array of arguments that are not marked as out parameters.

C#
public object[] InArgs { get; }
C#
public object[] InArgs { [System.Security.SecurityCritical] get; }

Property Value

Object[]

An array of arguments that are not marked as out parameters.

Attributes

Exceptions

The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.

Examples

C#

   public override IMessage Invoke(IMessage myIMessage)
   {
      Console.WriteLine("MyProxy.Invoke Start");
      Console.WriteLine("");
      ReturnMessage myReturnMessage = null;

      if (myIMessage is IMethodCallMessage)
      {
         Console.WriteLine("Message is of type 'IMethodCallMessage'.");
         Console.WriteLine("");

         IMethodCallMessage myIMethodCallMessage;
         myIMethodCallMessage=(IMethodCallMessage)myIMessage;
         Console.WriteLine("InArgCount is  : " +
                           myIMethodCallMessage.InArgCount.ToString());

         foreach (object myObj in myIMethodCallMessage.InArgs)
         {
            Console.WriteLine("InArgs is : " + myObj.ToString());
         }

         for(int i=0; i<myIMethodCallMessage.InArgCount; i++)
         {
            Console.WriteLine("GetArgName(" +i.ToString() +") is : " +
                                    myIMethodCallMessage.GetArgName(i));
            Console.WriteLine("GetInArg("+i.ToString() +") is : " +
                           myIMethodCallMessage.GetInArg(i).ToString());
         }
         Console.WriteLine("");
      }
      else if (myIMessage is IMethodReturnMessage)
         {
             Console.WriteLine("Message is of type 'IMethodReturnMessage'.");
         }

         // Build Return Message
         myReturnMessage = new ReturnMessage(5,null,0,null,
                                    (IMethodCallMessage)myIMessage);

      Console.WriteLine("MyProxy.Invoke - Finish");
      return myReturnMessage;
   }
}

// The class used to obtain Metadata.
public class MyMarshalByRefClass : MarshalByRefObject
{
   public int MyMethod(string str, double dbl, int i)
   {
      Console.WriteLine("MyMarshalByRefClass.MyMethod {0} {1} {2}", str, dbl, i);
      return 0;
   }
}

Remarks

Although the InArgs property is redundant since the same functionality can be achieved with the InArgCount and GetInArg methods, there might be performance optimization available if the implementer understands when all the arguments will be retrieved.

Applies to

Proizvod Verzije
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1