C#と諸々

C#がメインで他もまぁ諸々なブログです
おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`)
つーかコメント欲しい(´・ω・`)

2007/09/20 21:49
ひょんなこと ( ※ ) から、 TypeForwardedToAttribute クラス (System.Runtime.CompilerServices) というクラスの存在を知りました。
でも、MSDN には


別のアセンブリ内にある転送先の Type を指定します。このクラスは継承できません。

TypeForwardedToAttribute 属性を使用して、古いアセンブリに対してコンパイルを実行した呼び出し元を妨げずに、あるアセンブリから別のアセンブリに型を移動します。


としか書いてなくて、全く意味がわかりませんでした。
で、ネットで検索してみたら見つかりました。

Mimori's Algorithms tDiary(2007-04-25)

なるほど、例えば、コンソールアプリケーション A からクラスライブラリ A の Hoge クラスと Fuga クラスを利用していたとします。後に Fuga クラスをクラスライブラリ A からクラスライブラリ B へと移動した場合、コンソールアプリケーション A はクラスライブラリ B を参照していないため、そのままでは Fuga クラスを利用できなくなってしまいます。通常、この問題を解決するには、コンソールアプリケーション A の参照設定を修正して再コンパイルする必要があります。しかし、それができない場合に TypeForwardedToAttribute 属性が登場するわけですね。クラスライブラリ A に TypeForwardedToAttribute 属性を付加してクラスライブラリ B の Fuga クラスを指定すれば、コンソールアプリケーション A の参照設定を修正することなく、Fuga クラスを引き続き利用できるわけです。


MCP 試験 70-551: UPGRADE: MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework
スポンサーサイト



タグ: .NET C# アセンブリ