2
Answers

Register Eventhandler`1 via late binding

Photo of Nino Pochkhua

Nino Pochkhua

12y
2.3k
1
Hello,

I need help in late binding.

I have a simple assembly Option.dll, which defines only two classes:
Collapse | Copy Code
public class Option
{
public event EventHandler<OptionEventArgs> OnBought;

public void Buy()
{
Console.WriteLine("Buying option...");

if (OnBought != null)
OnBought(this, new OptionEventArgs("Successfully bought!", 120.50));
}
}

public class OptionEventArgs : EventArgs
{
public string Message { get; set; }
public double Lots { get; set; }

public OptionEventArgs() { }
public OptionEventArgs(string message, double lots)
{
Message = message;
Lots = lots;
}
}

In the client app, I load an assembly dynamically and use late binding to activate the Option type, but I don't know how to register the OnBought event.

Is there any way to register it ?
Here is the client app's Main method:
Collapse | Copy Code
static void Main(string[] args)
{
Assembly asm = null;

try
{
asm = Assembly.Load("Option");

Type option = asm.GetType("Option.Option");
dynamic opt = Activator.CreateInstance(option);

//now i want to register OnBought event...
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Console.ReadLine();
}

Thank you

Answers (2)