概要‎ > ‎

コントロール操作のラッパー

FriendlyOperationは便利なのですが、呼び出す操作を文字列で指定するため、以下の問題があります。

・スペルミスがあっても、コンパイルエラーにならない。
・VisualStudioのインテリセンスが使えない。

この問題は、よく使う操作を共通化して抜出したクラスを作成することで対策できます。
テストコードもプログラムなので、メンテ性をよくするには、このような共通化が重要になってきます。

例えば、プロダクトプロセスのSystem.Windows.Forms.Buttonクラスの操作であれば、次のようなクラスが考えられます。

using Codeer.Friendly;
 
namespace CommonGui
{
    //System.Windows.Formsをラップ
    public class MyButton
    {
        AppVar core;
 
        public MyButton(AppVar src)
        {
            core = src;
        }
 
        //Textプロパティーをラップ
        public string Text
        {
            get { return (string)core["Text"]().Core; }
            set { core["Text"](value); }
        }
 
        //PerformClickメソッドをラップ
        public void PerformClick()
        {
            core["PerformClick"]();
        }
    }
}


AppVarをMyButtonに入れて使うことによりVisualStudioでもインテリセンスが使えます。
スペルミスの心配もありません。
全ての操作をラップする必要はなく、頻繁に使うものだけで良いと思います。

実は、Win32、WinForms、WPFの基本的なGUIクラスのこのようなラッパーライブラリが存在ます。

これらを使っていただいて、定義されていない分を,お客様ご自身で作成していただければと思っています。
また、上記ライブラリはそれぞれソースもGitHubで公開されております。
そちらも参考になさってください。