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