[seasar-dotnet:808] Re: System.Windows.Forms.ControlクラスのSiteプロパティを自動バインディングの対象外にしてほしい

Hiroaki Fujii [E-MAIL ADDRESS DELETED]
2008年 4月 4日 (金) 21:28:35 JST


藤井です。

log4netのWARNログのことでよろしいでしょうか?

log4netのログの出力を抑える方法の一つとして、App.Configでlog4netの
設定を下記のように行います。

<filter type="log4net.Filter.StringMatchFilter">
   <StringToMatch value="プロパティ(Site)が見つからないので設定を
スキップします" />
  <AcceptOnMatch value="false"/>
</filter>

はしょっていますので、公開しているサンプル集の中のWindowsForm
アプリケーションサンプルのサンプルソリューションを見てください。
その中でWindowsFormのプロジェクトの中のApp.Configに設定しています。
このやり方ではだめでしょうか?

質問を勘違いしていたらすいません。



Toru Uetani さんは書きました:
> 上谷です。
> 
> 急を要するものではありませんが、うまい解決が思い浮かばないので要望してみます。
> 
> 現在、ウィザードのような形式で画面を切り替えるアプリケーションを作っています。
> その時にFormを生成していく形式ではなくて、UserControlを切り替えていく形式にしました。
> 
> UserControlはS2Container経由で生成して、ロジックを自動バインディングしています。
> そのときに「Siteプロパティが見つからない」というWARNログが出力されてしまいます。
> 
> 解決策として、
> 1.自動バインディングしない
> 2.適当なSiteオブジェクト?を登録しておく
> 3.気にしない
> を思いつきましたが、どれもすっきりしません。
> S2Containerのソースを修正するのはちょっと避けたいです。
> 
> UserControlのSiteプロパティはControlから継承したものなので、Control.Siteプロパティを
> 自動バインディングの対象外にしていただけるとありがたいです。
> 
> きちんと検証したわけではないですが、Seasar.Framework.Container.Util.AutoBindingUtilクラスの
> IsSuitable(Type, object, string)を以下のように修正すれば問題ないと思います。
> 自分のアプリケーションだと警告は出なくなりました。
> 
>         public static bool IsSuitable(Type propertyType, object
> component, string propertyName)
>         {
>             if (component is System.Windows.Forms.Control &&
> "Site".Equals(propertyName))
>             {
>                 return false;
>             } else if (component is System.Windows.Forms.Form
>                     && ("AcceptButton".Equals(propertyName)
>                         || "CancelButton".Equals(propertyName)))
>             {
>                 return false;
>             } else {
>                 return IsSuitable(propertyType);
>             }
>         }
> 
> 
> --
> ┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏
> 
>  ┏━━━┓ 上谷 徹(Toru Uetani)
>  ┃\_/┃ mail:[E-MAIL ADDRESS DELETED]
>  ┗━━━┛
> ┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> 



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