12

.NET 4.5では、CLRチームは次のように追加しました。

発信者のタイプに1つ追加されなかったのはなぜですか?

4

1 に答える 1

2

設計チーム以外の誰かがこれに答えるのは難しいですが、CallerTypeNameAttribute.

ファイルと行の属性は、他の方法では取得できないロギング ルーチンの拡張情報を提供します。メンバー名により、ロギングが可能になり、実装が簡素化されるとINotifyPropertyChanged同時に、文字列を検索する必要なく安全な名前のリファクタリングが可能になります。

呼び出し元の型は、を使用して特定のメソッドに既に渡すことができるtypeof(CurrentType).Nameため、おそらく追加の属性に値しません。呼び出し元のメンバー名は、を使用して既に取得されている可能性がありますMethodBase.GetCurrentMethodが、おそらく常にリフレクションが強制され、typeofおそらく最適化されて除去されるため、安全なリファクタリングの利点が得られ、パフォーマンスへの影響が少なくなります。

typeof可能な属性の代わりに使用することの唯一の欠点は、属性のアプローチが難読化の影響を受けないことです。

于 2012-08-29T20:39:32.960 に答える