Creates a new instance of the specified type defined in the specified assembly file. : AppDomain « Reflection « C# / C Sharp






Creates a new instance of the specified type defined in the specified assembly file.

  

using System;

public interface ITest
{
    void Test(string greeting);
}

public class MarshallableExample : MarshalByRefObject, ITest
{
    static void Main()
    {
        string assemblyPath = Environment.CurrentDirectory + "\\" +typeof(MarshallableExample).Assembly.GetName().Name + ".exe";

        AppDomain ad = AppDomain.CreateDomain("MyDomain");

        System.Runtime.Remoting.ObjectHandle oh = ad.CreateInstanceFrom(assemblyPath, "MarshallableExample");

        object obj = oh.Unwrap();
        obj.GetType().InvokeMember("Test", System.Reflection.BindingFlags.InvokeMethod, Type.DefaultBinder, obj, new object[] { "Hello" });

        ITest it = (ITest) obj;
        it.Test("Hi");

        MarshallableExample ex = (MarshallableExample) obj;
        ex.Test("Goodbye");
    }

    public void Test(string greeting)
    {
        Console.WriteLine("{0} from '{1}'!", greeting,AppDomain.CurrentDomain.FriendlyName);
    }
}

   
    
  








Related examples in the same category

1.Get AppDomainSetup
2.Assembly loaded event
3.AppDomain.AssemblyResolve Event
4.Gets the base directory that the assembly resolver uses to probe for assemblies.
5.Resets the path that specifies the location of private assemblies to the empty string ("").
6.Creates a new instance of a specified COM type.
7.Creates a new instance of the specified type.
8.Gets the current application domain for the current Thread.
9.Defines a dynamic assembly using the specified name, access mode, and storage directory.
10.Gets the friendly name of this application domain.
11.Gets the assemblies that have been loaded into the execution context of this application domain.
12.Loads an Assembly given its AssemblyName.
13.Returns the assemblies that have been loaded into the reflection-only context of the application domain.
14.Establishes security policy level for application domain.
15.Assigns the specified value to the specified application domain property.
16.Get App Setting String