クラスWindow1 Private WithEvents _prog As DangerousProgram Private Sub Button1_Click(System.ObjectとしてByVal、System.Windows.RoutedEventArgsとしてByVal e)Button1.Clickを処理します。 プライベートSub MyEventHandler(ByValオブジェクトを送信者として、ByVal eをNameChangedEventArgsとして処理)_prog.NameChanged TextBox1.Text = "プログラムの名前は現在:" 終了クラス _パブリッククラスDangerousProgram AppDomainとしてのプライベート_appDomainプログラムとしてのプライベートWithEvents _dangerousProgramパブリックイベントNameChanged(オブジェクトとしてのByValセンダー、名前としてのByVal e) 公開サブNew() // DangerousProgramはセキュリティのために独自のAppDomain内に作成されます。 _appDomain = AppDomain.CreateDomain( "AppDomain")StringとしてのDimアセンブリ= System.Reflection.Assembly.GetEntryAssembly()。FullName _dangerousProgram = CType(_ _appDomain.CreateInstanceAndUnwrap(assembly、_ GetType(Program).FullName)、Program) 終了サブ 文字列としてのパブリックプロパティName()戻り値_dangerousProgram.Name終了取得セット(文字列としてのByVal値)_dangerousProgram.Name = value終了セット終了プロパティ パブリックSub NameChangedHandler(ObjectとしてByValセンダ、NameChangedEventArgsとしてByVal e)_dangerousProgram.NameChangedを処理します。 プログラム名は{0}です。 "、e.Name))Debug.WriteLine("イベントの再発生中... ") RaiseEvent NameChanged(私、新しいNameChangedEventArgs(e.Name))End Sub 終了クラス _パブリッククラスプログラムはMarshalByRefObjectを継承 文字列としてのプライベート_nameパブリックイベントNameChanged(オブジェクトとしてのByVal送信者、名前としてのByVal e eChangedEventArgs) 文字列としてのPublicプロパティName()戻り値_name Endセット(文字列としてのByVal値)_name = value RaiseEvent NameChanged(私、New NameChangedEventArgs(_name))終了セットEndプロパティ 終了クラス _パブリッククラスNameChangedEventArgs EventArgsを継承 文字列としてのパブリック名 Public Sub New(文字列としてのByVal newName)Name = newName End Sub 終了クラス