[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 メーリングリストの案内