[seasar-dotnet:1754] S2Form のバインドに時間が掛かる
Takashi Nishikawa
[E-MAIL ADDRESS DELETED]
2010年 6月 23日 (水) 21:53:58 JST
はじめまして。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 ループ外に
出しています。
本家で対応頂けるようなら幸いです。
宜しくお願い致します。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-dotnet/attachments/20100623/4a202e7f/attachment.html>
seasar-dotnet メーリングリストの案内