Mega Code Archive

 
Categories / VB.Net / Reflection
 

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