Если метод не является статическим, вам нужно передать ссылку на экземпляр класса, метод которого вы собираетесь вызывать с помощью делегата.
Если вы не знаете, какой экземпляр вы будете использовать в то время, когда вы пытаетесь создать делегата, вам нужно будет сохранить информацию о типе и методе на потом, а затем создать делегат после того, как вы получите экземпляр класс.
EDIT
Чтобы ответить на ваш комментарий, объект, который вам нужно передать, является объектом того типа, который содержит метод, к которому вы пытаетесь привязать своего делегата. Так что, исходя из вашего примера кода, это не объект Command, а объект класса из DLL.
Итак, допустим, у вас есть эта сборка .NET DLL: myassembly.dll
. Сборка содержит следующий класс:
namespace MyNamespace
{
public class SomeClass
{
public SomeClass()
{
}
public void Method1(object Command, object ExposedVariables)
{
}
public void Method2(object Command, object ExposedVariables)
{
}
}
Вам потребуется создать экземпляр класса SomeClass, прежде чем вы сможете создавать делегаты, связанные с Method1 или Method2 этого класса. Итак, код, который создает делегат, должен выглядеть так:
// assuming that method info is a MethodInfo contains information about the method
// that you want to create the delegate for, create an instance of the class which
// contains the method..
object classInstance = Activator.CreateInstance(methodInfo.DeclaringType);
// and then create the delegate passing in the class instance
Delegate.CreateDelegate(typeof(Command.delCmdMethod), classInstance, methodInfo);