ASP.NETでのQuillの使い方

WindowsFormとWPFではQuillを試したので、
ASP.NETでもQuillを試してみた。

ソースのダウンロード

基本的には全てのページでinjectをしてやれば問題ないようだ。
だが、バージョン1.3.15ではうまく動作しない。

理由はここでも、少し前にはまった、
いつの間にか追加されていた「同じクラスのDIは2度しない仕様」の為だった。

Page_Loadは何度も実行されるが、
2度目以降にはインジェクションされず、NULLになってしまう。

このへんはバージョン1.3.16で修正されているので、
ASP.NETQuillを使う場合は1.3.16を使うこと。

それ以外は、特に気になることはなかった。
そこまで突き詰めて確認したわけではないが、
WindowsFormと同じように使えるはずだと思う。

WebForm1.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Seasar.Quill;

namespace WebApplication1
{

    public partial class WebForm1 : System.Web.UI.Page
    {
        protected CalcLogic _calcLogic;

        protected void Page_Load(object sender, EventArgs e)
        {
            QuillInjector injector = QuillInjector.GetInstance();
            injector.Inject(this);
        }

        protected void btnAdd_Click(object sender, EventArgs e)
        {
            txtResult.Text = _calcLogic.Add(txtParam1.Text, txtParam2.Text);
        }

        protected void btnClear_Click(object sender, EventArgs e)
        {
            txtResult.Text = string.Empty;
            txtParam1.Text = string.Empty;
            txtParam2.Text = string.Empty;
        }
    }
}

CalcLogic.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Seasar.Quill.Attrs;

namespace WebApplication1
{
    [Implementation]
    public class CalcLogic
    {
        public string Add(string param1, string param2)
        {
            int result = Convert.ToInt32(param1) + Convert.ToInt32(param2);
            return result.ToString();
        }
    }
}