Manoj Singh
Manoj Singh

Reputation: 7707

How to use OUT parameter values returned from METHOD.INVOKE in C#

I am using C# 2.0,

I am trying to call webmethod of my webservice, please see below code sample:

    try
    {

        Type objtype = Type.GetType(crisresult.ToString());
        object obj = Activator.CreateInstance(objtype);

        Object[] mArgs = new Object[methodArgs.Length + 1];
        methodArgs.CopyTo(mArgs, 0);
        mArgs.SetValue(obj, methodArgs.Length);
        methodArgs = mArgs;

        Object result = mi.Invoke(service, methodArgs);

        JObject parsed = JObject.Parse(result.ToString());

        // option 1) if you are just using primitives
        foreach ( KeyValuePair<string, JToken> pair in parsed)
        {
            Console.WriteLine("{0}: {1}", pair.Key, pair.Value);
        }      
    }

Now in above code in my methodArgs object array is having an out parameter(crisresult), now incase of any error returned from my webservice method Object result = mi.Invoke(service, methodArgs); is shown in my out parameter, I am sure that my out parameter is the last object in my methodArgsobject array, I am looking to get that object and check for the error result returned from the webservice.

Please suggest!

Upvotes: 1

Views: 330

Answers (1)

Marc Gravell
Marc Gravell

Reputation: 1062770

Your methodArgs will have been updated to account for any ref / out parameters. Since you believe it is the last one:

object foo = methodArgs[methodArgs.Length-1];

Upvotes: 1

Related Questions