Mega Code Archive
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