Technical Forum
Ask questions. Discover Answers.
cancel
Showing results for 
Search instead for 
Did you mean: 

add_member_v2 exception error : Invoke(string, object[])' is inaccessible due to its protection level

AvidDev_255591
Nimbostratus
Nimbostratus

What am I doing wrong here?

        var iportType = assembly.GetExportedTypes().Where(o => o.FullName == "iControl.CommonAddressPort").First();
        dynamic ipPortDefinition = Activator.CreateInstance(iportType);

        var iControlMethodType = assembly.GetExportedTypes().Where(o => o.FullName == "iControl.LocalLBPool").First();

        // instantiate controlMethodType
        dynamic iControlMethodInstance = Activator.CreateInstance(iControlMethodType);

        ipPortDefinition.address = memberIP;
        ipPortDefinition.port = Convert.ToInt32( memberPort);

        try
        {
            iControlMethodInstance.Invoke("add_member_v2", iControlMethodInstance, new object[] 
                            { poolName, ipPortDefinition });

        }
        catch (Exception e)
        {
            throw e;
        }

Any help is greatly appreciated, I've been pulling my hair for 2 days now.

1 REPLY 1

Don't know .NET and it looks like you do, so I'm in very deep water here, but the prototype says:

 add_member_v2(
    in String [] pool_names,
    in Common__AddressPort [] [] members
);

It looks like you might want to convert poolName into an array containing the pool name as the only element. Then make sure that the ipPortDefinition is a nested array. Try that?

/Patrik