|
分類:[C#]
お世話になります。
Form上のテキストボックスにPreviewKeyDownイベントを追加したところ、
コード分析で、以下の警告が発生するようになりました。
(イベントを外すと出なくなります。)
以下、警告Msg引用(改行&修正有)
--------------------------------
CA2122 : Microsoft.Security : XXXXXForm.InitializeComponent():Void は LinkDemand を伴う
Control.add_PreviewKeyDown(PreviewKeyDownEventHandler):Void 内への呼び出しを行います。
この呼び出しを行うことによって、Control.add_PreviewKeyDown(PreviewKeyDownEventHandler):Void は
間接的にユーザー コードに公開されます。セキュリティの保護を回避する方法を公開する可能性のある
次の呼び出し履歴を確認してください:
->System.Windows.Forms.Control.add_PreviewKeyDown(System.Windows.Forms.PreviewKeyDownEventHandler) : Void
->AAAAA.Application.BBBBB.Forms.XXXXXForm.InitializeComponent : Void
->AAAAA.Application.BBBBB.Forms.XXXXXForm.#ctor
(AAAAA.Application.BBBBB.Common.HogeConfig,
System.String,
AAAAA.Application.BBBBB.Common.HogeFlg) : Void
--------------------------------
(引用ここまで)
回避方法として、
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.LinkDemand,
Flags = System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]
の文をコンストラクタの直前に定義する事により警告は外す事が出来たのですが、
恥ずかしながらMSDNを読んでも理解が出来ませんでした。
勝手な推測ですが、通常のKeyDownイベントだとTabキーのイベントは取れませんが、
PreviewKeyDownイベントだと取得できます。
この仕組みの部分(イベントの発行元?)に警告の理由があると思うのですが
どうでしょうか?(的外れでしたら済みません。)
理由がわからず外し方だけ知っているのもなんか悔しいので、
どなたかわかる方いらっしゃいましたら噛み砕いて教えて頂けませんでしょうか?
環境はVS2005(C#)/.net2.0(SP2)です。
宜しくお願い致します。
|