[seasar-dotnet:1756] Re: S2Form のバインドに時間が掛かる

fp [E-MAIL ADDRESS DELETED]
2010年 6月 24日 (木) 19:34:41 JST


fp です。

宜しくお願いします。


ソースの一部をおかしなところに挿入してしまい申し訳ありません。
>> table.ContainsKey(attribute.ControlName.ToLower())?
>>


(2010/06/24 6:56), Hiroaki Fujii wrote:
> 藤井です。
> 
> ソースの提供、ありがとうございます。
> 
> 
> 早速検証させていただきますが、少しお時間をいただくことになるかも
> しれません。
> 
> よろしくお願いします。
> 
> 
> (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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet


seasar-dotnet メーリングリストの案内