MethodInvocationException Class

ScaleOut Software NamedCache API
An exception thrown when a NamedCache.Invoke operation fails while performing the user-defined method or merge operation on some host.
Inheritance Hierarchy


Namespace:  Soss.Client
Assembly:  soss_namedcache (in soss_namedcache.dll) Version:

public class MethodInvocationException : StateServerException

The MethodInvocationException type exposes the following members.


Public propertyData
Gets a collection of key/value pairs that provide additional user-defined information about the exception.
(Inherited from Exception.)
Public propertyHelpLink
Gets or sets a link to the help file associated with this exception.
(Inherited from Exception.)
Public propertyHResult
Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.
(Inherited from Exception.)
Public propertyInnerException
Gets the Exception instance that caused the current exception.
(Inherited from Exception.)
Public propertyKey
Return a human-readable representation of the StateServer key corresponding to the object on which the failed StateServer operation was performed.
(Inherited from StateServerException.)
Public propertyMessage
Gets a message that describes the current exception.
(Inherited from Exception.)
Public propertyOperation
Return the StateServer operation that was executing when this exception was thrown
(Inherited from StateServerException.)
Public propertySource
Gets or sets the name of the application or the object that causes the error.
(Inherited from Exception.)
Public propertyStackTrace
Gets a string representation of the immediate frames on the call stack.
(Inherited from Exception.)
Public propertyStatusCode
Return the status code value returned by the StateServer runtime.
(Inherited from StateServerException.)
Public propertyTargetSite
Gets the method that throws the current exception.
(Inherited from Exception.)

Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetBaseException
When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.
(Inherited from Exception.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetObjectData
Sets the SerializationInfo with information about the exception.
(Inherited from StateServerException.)
Public methodGetType
Gets the runtime type of the current instance.
(Inherited from Exception.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodToString
Creates and returns a string representation of the current exception.
(Inherited from Exception.)

Protected eventSerializeObjectState
Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.
(Inherited from Exception.)

Public fieldStatic memberAllExceptionsKey
The key that can be used with the Data dictionary to retrieve an IListT of exceptions that occurred while processing the NamedCache.Invoke operation.

The NamedCache.Invoke methods generally execute a user-supplied method on multiple hosts in parallel. Consequently, any given method invocation can result in multiple failures. This exception is a wrapper and holder for those failures. Assuming the exceptions are serializable, the actual exceptions generated on the remote host(s) are all returned and are accessible as via a MethodInvocationException instance. One exception is selected and is available as this exception's InnerException. The Data property may be used to retrieve an IListT of all generated exceptions via the AllExceptionsKey. For example:

public void ExceptionsInEvalWithoutMerge()
    NamedCache cache = CacheFactory.GetCache("Portfolios");
    try {
        // Invoke the "ThrowException" method once for each StateServer object found in the
        // "Portfolios" named cache. 
        cache.Invoke<Portfolio, Object>(null, null, TestMethods.ThrowException);

    } catch (MethodInvocationException mie) {

        // Extract the list of all exceptions caught while evaluating "ThrowException"
        // against each Portfolio object in the "Portfolios" named cache. This value
        // can be cast to an IList<Exception>.
        IList<Exception> allExceptions = (IList<Exception>) mie.Data[MethodInvocationException.AllExceptionsKey];

        // Alternatively, the first exception returned in the exception list is
        // available as the MethodInvocationException.InnerException
        Debug.Assert(allExceptions[0] == mie.InnerException);
        throw mie.InnerException;

private class TestMethods
    public static void ThrowException(Portfolio p, object ignored)
        throw new NotImplementedException("This method always throws an exception.");
See Also