[seasar-dotnet:1755] Re: S2Form のバインドに時間が掛かる
Hiroaki Fujii
[E-MAIL ADDRESS DELETED]
2010年 6月 24日 (木) 06:56:36 JST
藤井です。
ソースの提供、ありがとうございます。
早速検証させていただきますが、少しお時間をいただくことになるかも
しれません。
よろしくお願いします。
(2010/06/23 21:53), Takashi Nishikawa wrote:
> はじめまして。fpと申します。
>
> [seasar-dotnet:1397] 「[S2Form] プロパティの多いPONOを
> バインドすると時間がかかってしまう」で提起された表題の件
> s2container.net-1.3.17 では解決済みとなっているようですが
> table.ContainsKey(attribute.ControlName.ToLower())?
>
> 当方では100を超えるようなコントロールがある場合は
> 常にこの問題にぶつかります。
>
> 対策として _SetDataToControls での
> Control[] controls = _GetControls(this);
> foreach (Control control in controls) {
> を以下のようなメソッドでHashTableを使用することで
> PropertyInfo の ForEach 内のバインド処理速度の向上を
> 図っています。
>
> private static void _GetAllControls(Control controls, Hashtable table)
> {
> foreach (Control control in controls.Controls)
> {
> if (String.Equals(control.Name.ToLower(), String.Empty) == false)
> {
> table.Add(control.Name.ToLower(), control);
> _GetAllControls(control, table);
> }
> }
> }
>
>
> あと、上記 Control[] controls = _GetControls(this); に加え
>
> object[] attributes
> = formType.GetCustomAttributes(typeof(ControlAttribute), false);
>
> を全てのメソッドで PropertyInfo の ForEach ループ外に
> 出しています。
>
> 本家で対応頂けるようなら幸いです。
>
> 宜しくお願い致します。
>
>
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
seasar-dotnet メーリングリストの案内