public void TestInvalidContext()
        {
            WindowsAppFriend app2 = null;

            if (IntPtr.Size == 4)
            {
                app2 = new WindowsAppFriend(Process.Start(TargetPath.Path32), "2.0");
            }
            else
            {
                app2 = new WindowsAppFriend(Process.Start(TargetPath.Path64), "2.0");
            }

            try
            {
                WindowControl targetForm = WindowControl.FromZTop(app2);
                //実行コンテキストを変更
                ExecuteContext context = new ExecuteContext(app2, targetForm.AppVar);
                app2.ChangeContext(context);
                //破棄
                context.Dispose();

                //通信に失敗すること
                try
                {
                    app2.Dim();
                    Assert.IsTrue(false);
                }
                catch (FriendlyOperationException e)
                {
                    string message = "アプリケーションとの通信に失敗しました。" + Environment.NewLine +
                                     "対象アプリケーションが通信不能な状態になったか、" + Environment.NewLine +
                                     "シリアライズ不可能な型のデータを転送しようとした可能性があります。";
                    Assert.AreEqual(e.Message, message);
                }
            }
            finally
            {
                Process.GetProcessById(app2.ProcessId).CloseMainWindow();
            }
        }
        public void TestInvalidContext()
        {
            WindowsAppFriend app2 = null;
            if (IntPtr.Size == 4)
            {
                app2 = new WindowsAppFriend(Process.Start(TargetPath.Path32), "2.0");
            }
            else
            {
                app2 = new WindowsAppFriend(Process.Start(TargetPath.Path64), "2.0");
            }

            try
            {
                WindowControl targetForm = WindowControl.FromZTop(app2);
                //実行コンテキストを変更
                ExecuteContext context = new ExecuteContext(app2, targetForm.AppVar);
                app2.ChangeContext(context);
                //破棄
                context.Dispose();

                //通信に失敗すること
                try
                {
                    app2.Dim();
                    Assert.IsTrue(false);
                }
                catch (FriendlyOperationException e)
                {
                    string message = "アプリケーションとの通信に失敗しました。" + Environment.NewLine +
                                        "対象アプリケーションが通信不能な状態になったか、" + Environment.NewLine +
                                        "シリアライズ不可能な型のデータを転送しようとした可能性があります。";
                    Assert.AreEqual(e.Message, message);
                }
            }
            finally
            {
                Process.GetProcessById(app2.ProcessId).CloseMainWindow();
            }
        }