Click here to Skip to main content
15,891,529 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
See more:
Hello,

I need help in late binding.

I have a simple assembly Option.dll, which defines only two classes:
C#
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:
C#
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
Posted
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900