AppDomain.CreateInstanceFrom : Application Domain « Reflection « VB.Net






AppDomain.CreateInstanceFrom

 

Imports System

Public Interface ITest
    Sub Test(ByVal greeting As String)
End Interface

Public Class MarshallableExample 
    Inherits MarshalByRefObject
    Implements ITest

    Shared Sub Main()
        Dim assemblyPath As String = Environment.CurrentDirectory & "\" & GetType(MarshallableExample).Assembly.GetName().Name & ".exe"

        Dim ad As AppDomain = AppDomain.CreateDomain("MyDomain")

        Dim oh As System.Runtime.Remoting.ObjectHandle = ad.CreateInstanceFrom(assemblyPath, "MarshallableExample")
        Dim obj As Object = oh.Unwrap()
        obj.GetType().InvokeMember("Test", System.Reflection.BindingFlags.InvokeMethod, Type.DefaultBinder, obj, New Object() { "Hello" })

        Dim it As ITest = CType(obj, ITest) 
        it.Test("Hi")

        Dim ex As MarshallableExample = CType(obj, MarshallableExample) 
        ex.Test("Goodbye")
    End Sub
    Public Sub Test(ByVal greeting As String) Implements ITest.Test
        Console.WriteLine("{0} from '{1}'!", greeting,AppDomain.CurrentDomain.FriendlyName)
    End Sub
End Class

   
  








Related examples in the same category

1. System AppDomain Get Current Thread Id
2.AppDomain.GetAssemblies
3.AppDomain.AssemblyLoad Event occurs when an assembly is loaded.
4.AppDomain.AssemblyResolve Event occurs when the resolution of an assembly fails.
5.AppDomain.CreateInstanceAndUnwrap
6.AppDomain.CurrentDomain gets the current application domain for the current Thread.
7.AppDomain.ExecuteAssembly executes the assembly contained in the specified file.
8.AppDomain.GetAssemblies
9.AppDomain.GetData gets the value stored in the current application domain for the specified name.
10.AppDomain.Id Property gets an integer that uniquely identifies the application domain within the process.
11.Create an Application Domain
12.Load Assemblies into an Application Domain
13.Unload an Application Domain